事情是这样的,公司的APP在年前突然在App Store搜索不到了,但是打开链接还能到下载页面,跟苹果联系也说一切正常,交涉了很久没效果,各种方法也试过了,最后无奈又重新提交了一个功能相同的APP。
这就遇到了一个问题,我们需要维护两个功能相同的APP,APP内用到了不少的第三方,每个第三方key都有两套,这样每次打包时候就很扯了,所以看了下,最后采用了多target方式来解决此问题。
现在把过程分享出来,也是怕自己以后忘了。
1、复制出一个相同的target
会弹出窗口让选择只适用iPhone还是同时兼容iPad,我自己选的是只适用于iPhone
我在这里没有改target名字,如果你需要改的话直接改了就行,同时会创建一个以target名称开头的info.plist,如果你target改名了,那info.plist名字也要改
2、通过预编译宏来实现不同target使用不同的key
TARGET_TEBIEBAN=99 // 这个你可以自定义
// 然后在pch文件中判断宏定义即可
#if TARGET_TEBIEBAN==99
#else
#endif
// 如果你有超过两个以上target,那么每个target都应当设置预编译宏中间用#elif即可
打包时选择相应的target就可以了
分割线------------------------------------------------------------------------------------------
本来觉得到这里就结束了,不曾想过了几天新添加了一个第三方框架,再编译copy那份的时候就报错了,想了一下应该是cocoaPod问题,回退版本果然跟我猜测一致,又看了下多target下podfile文件问题
我自己试了试网上的方案,只成功了最笨的一种方法
target 'demo' do
pod 'AFNetworking'
end
target 'demo copy' do
pod 'AFNetworking'
end
// 还有一种方式我没成功,如果你有什么好的方式可以在评论中回复我,非常感谢
#link_with 'demo', 'demo copy'