<article class="_2rhmJa">
因公司需求,要用一份代码,打出不同名字,icon的ipa包。如果只是有一小部分的代码不同,可以在一个项目里设置多个target,增加宏定义来区分target。
需求如下:
1. 不同的App名字
2. 不同的包名
3. 不同的icon
4. 不同的引导图
5. 页面(代码)中要可以区分不同target
首先打开一个项目,找到Targets,选中当前target,右键 -> 选择Duplicate
注意!
如果点击Duplicate,弹出对话框,选择仅复制就可以了。
复制好的target如下图:
多了一个TargetDemo copy和TargetDemo copy-Info.plist文件
复制的TargetDemo copy-Info.plist在文件根目录下,为了方便管理,我新建了一个文件夹,放TargetDemo copy-Info.plist文件,如下图
在完成需求之前! 先把复制出来的target和info.plist名字改一下,这样方便区分。
选中target/info.plist 按 回车键(enter/return),即可修改名字。
接下来!改APP名字和包名(Bundle Identifier)!如下图
选中第一个target(TargetDemo),General选项下
Display Name 填写app名字
Bundle Identifier 填写包名
接下来,选中第二个target(TargetDemo1),这个时候会发现,没有info.plist文件,是因为路径不对,没找到这个文件。
直接点击 choose Info.plist File 找到你的第二个info.plist(TargetDemo1-Info.plist)文件,添加进来即可。(如果添加后,plist文件并未显示,就切换一下菜单(点击一下General 后边其他选项),再点General即可)
注意!
如果info.plist文件还是未添加进来!
选中target文件,在buildSttings中 搜索info, 在Packaging下的Info.Plist File 设置info.plist文件的路径。找到info.plist文件的路径, 从工程的路径开始,前面使用$(SRCROOT)代替,这就是相对路径。
这样就可以设置APP名字和包名了,方法同上。
现在可以设置icon 和LaunchImage了,准备好两套不同的icon和LaunchImage。
点击Assets.xcassets,在右侧空白处右键 选择 App Icons & Launch Images -> New iOS App Icon,新建一个APP Icon,然后将准备好的Icon分别拖进来。
在新建两个Launch Image,将准备好的图片拖进去。(Icon和Launch Image的名字可自行修改,注意区分)
选中第一个target,在General下找到App Icons And Launch Images,在App Icons Source 选择刚刚设置的icon。
在General下找到App Icons And Launch Images,在Launch Images Sourc 选择刚刚设置的Launch Image。
第二个target的设置方法同上,记得切换target!
全部设置好后,就可以运行啦,运行项目时切换target的方法如下:
这个时候我发现复制出来的第二个target的名字没有被改掉,再来改一下!
在切换target的时候,选择Manage Schemes...
直接改掉就好啦!记得跟之前改的名字要一致。
还要设置一个宏来区分target。
选中一个target, 在Build Settings中搜索macros
找到Apple Clang - Preprocessing 下的Preprocessor Macros, 添加一个宏。
第二个target也用相同的方法设置。
设置好后,就可以在代码中做区分啦
</article>
2人点赞
作者:请叫我小仙女_
链接:https://www.jianshu.com/p/54bdcaf853ec
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。