iOS开发--同一个程序里有多个版本的App

在Xcode中添加多个targets进行版本控制,就是同一个app开发多个版本

以Xcode7.3.1 为例

1. 创建

点击左侧工程项目文件,选择TARGETS 下的项目右击选择 Duplicate。

看到这个弹框:(标准iPhone程序选Duplicate Only,如果需要iPad就选Duplicate and Transition to iPad)


就会看到TARGETS 下会出现一个 testCode copy

2.改名字

(1)点击xcode左上角Run、Stop右边的工程名称,下拉框中选择 Manage Schemes,在弹出框中,点击A copy那行,点击一次、再点击一次,就可以修改A copy为你想要的名字了,比如ALite;


(2)修改xcode左下方Products下的TestCode copy.app名称

选择新加的项目名,选”Build Settings” 搜索 “Packaging”下的”private Headers Folder Path”,修改testCode Copy/PrivateHeaders为 “TwoTestCode.app/PrivateHeaders”;


(3)把TARGETS 下的名字也改一改

3.修改Bundle Identifier和选择不同的证书,让app区分开来

Xcode 7.3.1已经把 .plist 生成了(多人性化啊)


接着直接创建个新的文件夹放 TwoTestCode的资料。(建议在工程文件夹里面创建再拖拽进来,记得选的是TwoTestCode)


之后就是这样


4.修改程序的名字和国际化

看这个帖子加国际化: http://www.jianshu.com/p/af5164fad6b1

target的程序名称都会不同,复制zh-Hans.lproj和en.lproj下的InfoPlist.strings文件到先前创建的TwoTestCode文件,然后修改InfoPlist.strings的内容:"CFBundleDisplayName"="TwoTestCode";

注意选择类型来改:


5.设立全局的宏定义来区分

选择TARGETS下的testCode->Build Setting,搜索:Preprocessor Macros,设置Debug和Release里的预编译宏内容,比如:TARGET_VERSION_LITE=1

(注意=前后不能右空格,有空格会编译不过)


最后:程序中对不同版本这样判断:

- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section

{

#if TARGET_VERSION_LITE ==1

return6;

#elif TARGET_VERSION_LITE ==2

return5;

#endif

return5;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容