iOS 设置多个target(一份代码可以设置多个icon,名字等)

<article class="_2rhmJa">

因公司需求,要用一份代码,打出不同名字,icon的ipa包。如果只是有一小部分的代码不同,可以在一个项目里设置多个target,增加宏定义来区分target。

需求如下:

1. 不同的App名字

2. 不同的包名

3. 不同的icon

4. 不同的引导图

5. 页面(代码)中要可以区分不同target

首先打开一个项目,找到Targets,选中当前target,右键 -> 选择Duplicate

注意!

如果点击Duplicate,弹出对话框,选择仅复制就可以了。

复制好的target如下图:

image

多了一个TargetDemo copy和TargetDemo copy-Info.plist文件

image

复制的TargetDemo copy-Info.plist在文件根目录下,为了方便管理,我新建了一个文件夹,放TargetDemo copy-Info.plist文件,如下图

image

在完成需求之前! 先把复制出来的target和info.plist名字改一下,这样方便区分。

选中target/info.plist 按 回车键(enter/return),即可修改名字。

image

接下来!改APP名字和包名(Bundle Identifier)!如下图

选中第一个target(TargetDemo),General选项下

Display Name 填写app名字

Bundle Identifier 填写包名

image

接下来,选中第二个target(TargetDemo1),这个时候会发现,没有info.plist文件,是因为路径不对,没找到这个文件。

image

直接点击 choose Info.plist File 找到你的第二个info.plist(TargetDemo1-Info.plist)文件,添加进来即可。(如果添加后,plist文件并未显示,就切换一下菜单(点击一下General 后边其他选项),再点General即可)

image

注意!

如果info.plist文件还是未添加进来!

选中target文件,在buildSttings中 搜索info, 在Packaging下的Info.Plist File 设置info.plist文件的路径。找到info.plist文件的路径, 从工程的路径开始,前面使用$(SRCROOT)代替,这就是相对路径。

image

这样就可以设置APP名字和包名了,方法同上。

现在可以设置icon 和LaunchImage了,准备好两套不同的icon和LaunchImage。

点击Assets.xcassets,在右侧空白处右键 选择 App Icons & Launch Images -> New iOS App Icon,新建一个APP Icon,然后将准备好的Icon分别拖进来。

image

在新建两个Launch Image,将准备好的图片拖进去。(Icon和Launch Image的名字可自行修改,注意区分)

image

选中第一个target,在General下找到App Icons And Launch Images,在App Icons Source 选择刚刚设置的icon。

image

在General下找到App Icons And Launch Images,在Launch Images Sourc 选择刚刚设置的Launch Image。

image

第二个target的设置方法同上,记得切换target!

全部设置好后,就可以运行啦,运行项目时切换target的方法如下:

image

这个时候我发现复制出来的第二个target的名字没有被改掉,再来改一下!

在切换target的时候,选择Manage Schemes...

image

直接改掉就好啦!记得跟之前改的名字要一致。

image

还要设置一个宏来区分target。

选中一个target, 在Build Settings中搜索macros

image

找到Apple Clang - Preprocessing 下的Preprocessor Macros, 添加一个宏。

image

第二个target也用相同的方法设置。

image

设置好后,就可以在代码中做区分啦

image

</article>

2人点赞

iOS

作者:请叫我小仙女_
链接:https://www.jianshu.com/p/54bdcaf853ec
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容