XCode 同一Project创建多个target
来源:互联网 发布:java 调用ant 编辑:程序博客网 时间:2024/05/17 06:30
由于项目需求,同一项目需要发两个版本,两个版本只有小部分不同,特地研究了一下target,小有了解,把创建target的经过记录在案,方便过后查看,如有疏漏,请网友指正。
创建target有两种方式,
1是通过新建target可以通过File-->New-->Target,然后选择其中一个模板来创建,app类型的target,可以选择Empty Application模板,不过新建的target有自己的AppDelegate和main,这点还没研究好,如何与原来的AppDelegate和main复用
2.另一种方法是通过对原有的target做duplicate,复制一份,目前只研究了如何通过duplicate来新建target,做下记录。
假设原来的target名字为A,我们需要新建一个target B
1. 在原来的target上右键,选择duplicate,Xcode会复制一个名为A copy的target对象,同时生成一个A copy-info.plist和A copy的scheme
2. 改名
a)对A copy target改名,可以直接单击target来修改,改成B
b)A copy-info.plist,默认生成在程序环境根目录,也就是A.xcodeproj的同级目录中,如果想放到里层(比如与A-info.plist放在同级目录),可以先在Xcode删除A copy-info.plist索引,然后拷贝文件到制定目录中,然后更名为B-info.plist,在add到project中。在Project的Build Settings中,修改Info.plist File选项为B-info.plist的目录(相对路径),这样就可以看到Info页了(就是B-info.plist),接着修改ProductName和Bundle identifier,使之成为另一个app。Prefix Header的路径,视具体需求而定是否要修改,如果两个target可以公用同一个Prefix Header,那么就不需要修改这里的路径
c)修改scheme,在调试的Stop按钮边上,我们可以选择本工程中所有的target来做编译,如果不修改,在这里选择出来的名字就是A copy,为了与新建的target统一起来,同样也要修改这里的名字。点击scheme选择区,然后选Manager Scheme,找到A copy,然后改成你需要的名字,比如B
用duplicate的好处是,如果两个target的相同点很多,用duplicate,就可以把相关的设置全部拷贝过来,而不需要做过多的修改
生成一个新的target,一定会与原target有区别,这里可以定义预编译宏,来区分两个版本的不同代码,预编译宏可以在Build Settings中Preprocessor Macros定义,比如在我们新建的target B中定义预编译宏MACRO,然后在代码中通过
#if defined (MACRO)
//target B需要执行的代码
#else
//target A需要执行的代码
#endif
来区分
其他:Build Phases(各target编译所包含的内容,需要注意的是,如果创建了target B后,再往A里面添加资源或文件,target B中不会自动增加这些资源,需要手动添加)
1.Compile Sources
需要编译的代码文件
2.Link Binary With Libraries
编译所依赖的库
3.Copy Bundle Resources
编译需要的资源
每个target可以根据具体需要增减里面的内容
- XCode同一Project创建多个target
- XCode 同一Project创建多个target
- XCode 同一Project创建多个target
- XCode 同一Project创建多个target
- XCode 同一Project创建多个target
- (原创)XCode 同一Project创建多个target
- xcode中同一project创建多个target
- Xcode中同一Project创建多个target的总结
- Xcode中同一Project创建多个target的总结
- iOS Xcode 同一个Project创建多个target
- iOS 开发 Xcode 一个工程 Project 创建多个 target
- xcode 创建多个target
- IOS开发之Xcode下使用多target, 让同一份代码,一个工程 Project 管理多个app
- 同一个project创建多个target
- Xcode工程创建多个target
- xcode 同一个project里 复制 多个target
- Xcode -Target , PROJECT 区别
- Xcode -Target , PROJECT 区别 - Xcode
- 有关SIP中的PRACK的含义和使用
- 自然对数
- outStream.flush()
- ubuntu13.04 使用halt机器没有关机的解决办法
- Codeforces Round #139 (Div. 2) E. Unsolvable
- XCode 同一Project创建多个target
- js实现图片上传预览
- byte[] buffer1 = Base64.decode(data); // 需要解密的数据
- c 语言中随机产生一个数字
- STM32 多个个APP的跳转
- Apache-FTP-Server: Configuration-<Server>
- Git初级使用教程
- 【Qt编程】Qt 小时钟
- 《自动控制原理》(胥布工版)习题2-21