1.新建Configuration
点击Project->Info,默认有Debug和Release两个Configuration,顾名思义Debug用于调试,Release用于发布,区别是Debug默认添加了预编译宏DEBUG=1,Release不能调试程序,并且Release编译时做了优化。点击Configurations选项卡下面的加号,分别复制一个Debug和Release的Configuration,这里我取名为Debug_a和Release_a,代表马甲包a的两个Configuration
新建Configuration.png
马甲包aConfiguration
注意:新建完Configuration之后请重新执行pod install命令
2.新建Scheme
为上一步新建的Configuration再新建Scheme,这里我新建了两个Scheme,命名为马甲包a_release和马甲包a_debug,在Manage Schemes里面把右边的Shared选项勾选,否则在git上无法同步。
新建Scheme
勾选Shared
在Edit Scheme里面把Run和Archive模式改成对应新建的Build Configuration
QQ20170615-093232.png
QQ20170615-093301.png
3.配置AppIcon和LaunchImage
新建一个App Icon和Launch Image文件夹,重新命名,拖入图片。
新建AppIcon和LaunchImage
选择Targets->Build Settings,搜索asset,在Asset Catalog App Icon Set Name 和 Asset Catalog Launch Image Set Name 配置各个Configuration所对应的图片文件夹名称。
QQ20170615-093625.png
4.配置App名称,Bundle ID 和 证书
4.1 配置App名称
在Project->Build Settings 点击加号选择Add User-Defined Setting],即增加用户自定义设置,添加一个App名称的设置,为不同的Configuration设置不同的App名字。
Add User-Defined Setting
屏幕快照 2017-06-15 16.32.29.png
然后在info.plist中设置Bundle display name为我们自定义的设置,${CusomAppName}。
App Name.png
4.2 配置Bundle ID和证书
不同的马甲包可能是由不同的开发者账号发布的,所以需要配置对应的bundle id 和 证书。
bundle id 在Targets->Build Settings 中的Product Bundle Identifier设置。
bundleID.png
证书配置如下图
证书配置
5.其他配置
在Targets->Build Settings->Preprocessor Macros中,可以根据Configuration配置不同的预编译宏,根据这个预编译宏的不同,在代码里面也可以有不同的配置,比如渠道号,接口域名等。
Macro.png
#ifdefMaJiaA#definekchannelCode @"majia_1"#endif#ifdefDEBUGNSString *kServiceDomain = @"http://api.test";#elseNSString *kServiceDomain = @"http://api.release";#endif
屏幕快照 2017-06-15 17.08.37.png
6.总结
用这种方法能比较方便地实现多环境变量的配置
7. App被拒4.3如何处理
App被拒4.3分为两种, 一种是机器4.3, 一种是人工审核4.3,我只说机器审核4.3解决方法。
Guideline 4.3 - Design
This app duplicates the content and functionality of other apps submitted by you or another developer to the App Store, which is considered a form of spam.
Apps that simply duplicate content or functionality create clutter, diminish the overall experience for the end user, and reduce the ability of developers to market their apps.
The next submission of this app may require a longer review time.
收到这种回复基本上就是机器审核4.3
解决方法是改类名,方法名,文件夹的名字
1.将工程类前缀改成另一个更长的字符串,类的后缀用其他字符串代替,名字尽量长一点。
比如ZHQBaseViewController->ABCPrefixionBaseDirector(ABCPrefixionBaseVC等)
ZHQLoginView - > ABCPrefixionRegisterSurface
其他的Category 等也一起改掉
2.修改文件夹的名字,我也推荐用AppCode来改
3.添加垃圾代码,文件来混淆代码,然后在现有的工程中调用
作者:wn