Apple开发_多targets管理

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

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 9.3已经把 .plist 生成了(多人性化啊)
  • 接着直接创建个新的文件夹放 TwoTestCode的资料。(建议在工程文件夹里面创建再拖拽进来,记得选的是TwoTestCode)
  • 之后就是这样

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

  • 看这个帖子加国际化--- app多target 国际化语言设置
  • 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;
}
posted @   CH520  阅读(352)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
西雅图
01:09发布
西雅图
01:09发布
6°
中雨
东北风
2级
空气质量
相对湿度
90%
今天
中雨
3°/12°
周二
小雨
4°/11°
周三
小雨
3°/9°