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 的文件,找到包含有类似如下内容的地方:
D0B815633AC0689B70BCBBB8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSET_PACK_MANIFEST_URL_PREFIX = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
EXECUTABLE_PREFIX = lib;
GCC_VERSION = "";
OTHER_CFLAGS = “”;
10 OTHER_CPLUSPLUSFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
这里要注意,第一行的十六进制字符串不一定是固定的,可能会随着不同的项目而变化。红色的两行是需要自己手工添加上去的,这其实是按照 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”可以自动清空最终目的文件所在文件夹。当然,你可以为这两个菜单项设置快捷键,那么操作起来就更方便了。
AppCode 中开发 Mac OS X 应用程序或共享库的经验小结的更多相关文章
- 什么是Nib文件?(Nib文件是一种特殊类型的资源文件,它用于保存iPhone OS或Mac OS X应用程序的用户接口)
Nib文件是一种特殊类型的资源文件,它用于保存iPhone OS或Mac OS X应用程序的用户接口.Nib文件是Interface Builder文档.通常您会使用Interface Builder ...
- 能在xcode5中开发基于IOS7sdk的应用程序兼容ios4.3之后的系统吗?
能在xcode5中开发基于IOS7sdk的应用程序兼容ios4.3之后的系统吗?
- 在VMware虚拟机中安装Mac OS 操作系统
1. 安装VMware 我这里是安装VMWARE12.exe,其他的版本我不知道是否可以正常运行,最好大家安装12版本的比较好. 2. 安装 Mac OS X Unlocker for VMware ...
- 设置 VMware 中的 Mac OS 虚拟机进入 Recovery 模式
Ø 简介 本文主要介绍 VMware 中的 Mac OS 虚拟机如何进入 Recovery 模式的方法,具体步骤如下: 1. 选择 Mac OS 虚拟机,点击"打开电源是进入固件&qu ...
- Linux:32/64位程序(应用程序、共享库、内核模块)
摘要: Linux系统区分32/64位,相应地,应用程序.共享库和内核模块也区分32/64位. 本文以Ubuntu系统为例,介绍如何编译和使用32/64位的应用程序.共享库和内核模块. 1. 应用程序 ...
- 在VMware中安装Mac OS
macOS与Darwin http://blog.csdn.net/hintcnuie/article/details/38468093 OS X 是整个操作系统的一个集体名称.而Darwin 就是其 ...
- 虚拟机中安装MAC OS X教程(适用所有电脑方法,特别是cpu不支持硬件虚拟化的电脑)
前言 之前写了一篇在Windows上搭建Object-C开发环境,并且写了一个HelloWorld程序.但真正开发苹果软件是在MAC OS X系统中(以下简称OSX)中.买不起MacBook,也没有O ...
- 在VMware Workstation 9中安装Mac OS X 10.8 Mountain Lion
本文环境: CPU:Intel Core i7 920: OS:Windows 7: 内存:8G: 玩Hackintosh各有各的理由,不管什么理由,利用虚拟机安装Mac OS X都是一个可行的办法. ...
- vmware 12中安装MAC OS X Lion 10.7
下载并安装vmware. 下载并安装MAC补丁. 创建虚拟机. 设置ISO文件. 开启虚拟机. 安装vmware tools. 1. 下载并安装vmware.我是直接在腾 ...
随机推荐
- springBoot 集成swagger2.9.2
加依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependen ...
- 【php】 phpword下载文件问题
这个问题是在 科锐国际 工作过程中发现的 word文档的名字(有汉字和空格)在windows系统上遍历是查不到文件的,但是在linux系统上市可以的压缩包里面的中文名word文档,如果出现汉字和空格, ...
- python2与python3的bytes问题
>>> s = '编程' >>> print s 编程 >>> s '\xe7\xbc\x96\xe7\xa8\x8b' >>> ...
- 12864点阵液晶显示模块的原理和实例程序(HJ12864M-1)
12864点阵液晶显示模块(LCM)就是由 128*64个液晶显示点组成的一个128列*64行的阵列.每个显示点对应一位二进制数,1表示亮,0表示灭.存储这些点阵信息的RAM称为显示数据存 储器.要显 ...
- 学习正则有感by魔芋(命名问题)
魔芋: 事实上,我是反感一些特殊的名词.一些名词看上去就让人感觉到抗拒. 关于一个概念用不同的名词来定义,简直是太糟糕了. 举个例子: 匹配一个后面带有exp2的exp1的正则. 写法: exp1(? ...
- Flash中国地图 开放源码
Flash中国地图,以Object为数据源,便于实现基于中国地图的可视化项目. 特征: swc,便于导入到Flex项目中 数据源为Object,比XML更方便 数据驱动的地图块颜色和Hover颜色 可 ...
- [转]netstat -tnl 列出监听中的连接,查看端口是否开启
任何网络服务的后台进程都会打开一个端口,用于监听接入的请求. 这些正在监听的套接字也和连接的套接字一样,也能被 netstat 列出来. 参数 tnl, 现在我们可以看到处于监听状态的 TCP 端口和 ...
- Struts has detected an unhandled exception异常
近期在写struts框架的时候会时不时的出现这个异常,多次实验以后发现,目前解决的方法只能通过重新部署项目再重新启动服务器解决,通常这个异常会出现在DMI即动态方法调用过程中.
- python学习笔记--python编程基础
一.一个隆重的仪式 我们在学习语言的时候,第一个写的程序肯定都是hello world.来写第一个程序吧,其实很简单,python的语法就是简单.优雅,一个print就搞定. 1 print('hel ...
- HDU——2056Rectangles(几何计算)
Rectangles Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...