你的位置:首页 > 操作系统

[操作系统]AppCode 中开发 Mac OS X 应用程序或共享库的经验小结


AppCode 是 JetBrains 公司出品的用于开发 Mac OS X 及 iOS 应用程序的集成开发环境,只能运行于 Mac OS X 操作系统环境下,作为 XCode 的高级替代品。由于其基于 IntelliJ IDEA 相同的代码基础,自然继承了 IDEA 的优良传统,代码智能提示以及自动完成、重构等等不一而足。在实际开发过程中,如果涉及到一些 XCode 特有的可视化设计功能,AppCode 实际上是调用 XCode 来实现;而其他情况下,基本上就是 AppCode 独立实现的功能运行了。这里面有几点经验总结一下,以备查:

1、建议将 AppCode 的快捷键方案设置为 IDEA 方案,使用与 IDEA 基本相同的快捷键习惯,这样比较方便一点。当然你也可以将 AppCode 的快捷键方案设置为 XCode 方案,使用 XCode 习惯。

2、采用 IDEA 快捷键方案后,项目属性设置可通过快捷键 Command+; 快速切换出来,否则需要点击菜单“File”->“Project Settings...”来调出。在项目属性设置中,有几个比较关键的地方需要注意:(1)一般情况下,我们只需去具体设置一个项目的同名target的各种编译属性,不用去设置项目或者“Shared Settings”的全局默认属性。特别是在target的属性页部分,有一个“Build Phases”,用于对target编译所需的源代码文件以及Frameworks进行增删设置的,特别是源代码文件,有时候后添加进项目中的源代码文件,如果没有被增加到Build Phases的源代码列表中,那么这个源代码文件是不会被编译的!通过在AppCode中从project的项目文件树状列表将源代码文件拖放到Build Phases源代码列表中即可实现增加,点击列表左下角的“-”减号即可从源代码列表中删除选定的源代码文件。(2)如何增加编译器选项?编译器选项有时候很重要,需要单独添加指定的。但是默认情况下 AppCode 并未提供设置编译器选项的方式。其实有一个变通的办法——因为 AppCode 使用与 XCode 完全相同的项目文件组织方式,因此我们可以进入到项目的 .xcodeproj 目录内(这里假定项目名称为 abc,那么就会生成一个名为 abc.xcodeproj 的目录),用文本编辑器打开名为 project.pbxproj 的文件,找到包含有类似如下内容的地方:

 1 D0B815633AC0689B70BCBBB8 /* Release */ = { 2   isa = XCBuildConfiguration; 3   buildSettings = { 4     ASSET_PACK_MANIFEST_URL_PREFIX = ""; 5     DYLIB_COMPATIBILITY_VERSION = 1; 6     DYLIB_CURRENT_VERSION = 1; 7     EXECUTABLE_PREFIX = lib; 8     GCC_VERSION = ""; 9     OTHER_CFLAGS = “”;10     OTHER_CPLUSPLUSFLAGS = "";11     OTHER_LDFLAGS = "";12     PRODUCT_NAME = "$(TARGET_NAME)";13   };14   name = Release;15};

这里要注意,第一行的十六进制字符串不一定是固定的,可能会随着不同的项目而变化。红色的两行是需要自己手工添加上去的,这其实是按照 cmake 的标准添加的编译器编译标识参数。添加完后保存该文件,在 AppCode 中重新打开这个项目就会看到 target 的 Build Settings 页面里面,在 User-Defined Settings 列表中多出了我们添加的那两个红色的编译器编译标识参数,你可以添加额外的编译标识参数了。

3、设置 target 的编译模式为 Release 或 Debug。默认情况下,target 的编译采用 Debug 模式,我们需要修改其为 Release 模式,可以通过快捷键 Alt+Shift+F10 然后在弹出的窗口菜单中选择“0”(Edit Configurations...)或者点击菜单“Run”->“Edit Configurations...”来为 target 创建编译运行配置,并选择 Release 模式即可。

4、target 编译产生的最终目的文件(比如可执行文件或者库)的位置虽然可以修改,但是这里推荐使用系统默认的路径。我们可以通过 AppCode 中的项目树状文件列表以快捷键 Command+Shift+C 来复制选中的最终目的文件,然后在终端中粘贴,用 cp 命令等方式去拷贝或进行其他操作等等。或者通过点击菜单“Run”->“Show Build Folder in Finder”来打开 target 编译产生的最终目的文件所在的文件夹进行各种复制粘贴等操作,还可以点击菜单“Run”->“Clean Build Folder”可以自动清空最终目的文件所在文件夹。当然,你可以为这两个菜单项设置快捷键,那么操作起来就更方便了。