公司有个需求:把已经做好的一个App,打包成另外两个App。要求可以独立安装,正常运行。这三个App大部分功能一致,在个别地方需要修改,比如图标、启动动画、App名称以及交互服务器IP地址等等。
实现方法:添加多个Target。
完成后的项目截图:
1、添加Target。
添加Target,就是新建一个项目。只不过这个项目不是独立的。
玩抽,Finder中的文件目录结构:
2、在新Target中添加编译文件和编译资源
在新Target的Build Phases中添加需要的代码文件和其他资源文件:
创建新的Target系统会自动添加一些基本的资源文件(1)。我们需要把它从编译文件列表(2)和编译资源列表(3)中删除,然后添加我们需要的文件。
如果新Target跟原来的Target没什么区别,可以参考GSLearning的Build Phases资源文件列表。
如果新Target需要定制功能,那么就要在编译列表中添加新模块了。
3、使用了Cocoapods管理第三方库,需要编辑Profile,然后pod install
现在做的项目都比较大,第三方类库是必不可少的。而CocoaPods是管理第三方库的利器。
编辑后,重新pod install,你的新Target就和CocoaPods联系上了。
4、在新Target的General中设置基本配置,然后run
如果中间没有出错,那么你离成功只差一步。
配置基本属性:
选择新Target,运行:
如果你的新App没跑起来,问题可能出现在这些地方:
1.少添加或错误添加了编译文件和编译资源文件;
2.CocoaPods导入三方库有问题;
3.新Target的Info.plist文件需要添加新内容,如:允许访问http等等;
4.等等。
5、给新Target配置AppIcon和LaunchImage
如果你的App已经没问题,接下来就需要配置ICON和LaunchImage。
在原来项目的Assets.xcassets(这也是新Target的资源文件夹)中添加ICON和LaunchImage(要注意名称:AppIcon-1)。
在General中设置
6、如果需要定制代码,在Build Settings中设置宏定义
新的Target不可能与原App完全一样。比如服务器IP地址,需要在代码中根据不同的Target设置不同的IP。
1)在Build Settings设置宏定义
ISXGPRO就是我们定义的宏定义。
2)在代码中使用