1.新建Configuration
點(diǎn)擊Project->Info纸兔,默認(rèn)有Debug和Release兩個(gè)Configuration,顧名思義Debug用于調(diào)試杏节,Release用于發(fā)布悼吱,區(qū)別是Debug默認(rèn)添加了預(yù)編譯宏DEBUG=1堰酿,Release不能調(diào)試程序,并且Release編譯時(shí)做了優(yōu)化昭卓。點(diǎn)擊Configurations選項(xiàng)卡下面的加號(hào)愤钾,分別復(fù)制一個(gè)Debug和Release的Configuration,這里我取名為Debug_a和Release_a候醒,代表馬甲包a的兩個(gè)Configuration
新建Configuration.png
馬甲包aConfiguration
注意:新建完Configuration之后請(qǐng)重新執(zhí)行pod install命令
2.新建Scheme
為上一步新建的Configuration再新建Scheme能颁,這里我新建了兩個(gè)Scheme,命名為馬甲包a_release和馬甲包a_debug倒淫,在Manage Schemes里面把右邊的Shared選項(xiàng)勾選伙菊,否則在git上無(wú)法同步。
新建Scheme
勾選Shared
在Edit Scheme里面把Run和Archive模式改成對(duì)應(yīng)新建的Build Configuration
QQ20170615-093232.png
QQ20170615-093301.png
3.配置AppIcon和LaunchImage
新建一個(gè)App Icon和Launch Image文件夾敌土,重新命名镜硕,拖入圖片。
新建AppIcon和LaunchImage
選擇Targets->Build Settings纯赎,搜索asset谦疾,在Asset Catalog App Icon Set Name 和 Asset Catalog Launch Image Set Name 配置各個(gè)Configuration所對(duì)應(yīng)的圖片文件夾名稱(chēng)。
QQ20170615-093625.png
4.配置App名稱(chēng)犬金,Bundle ID 和 證書(shū)
4.1 配置App名稱(chēng)
在Project->Build Settings 點(diǎn)擊加號(hào)選擇Add User-Defined Setting]念恍,即增加用戶(hù)自定義設(shè)置,添加一個(gè)App名稱(chēng)的設(shè)置晚顷,為不同的Configuration設(shè)置不同的App名字峰伙。
Add User-Defined Setting
屏幕快照 2017-06-15 16.32.29.png
然后在info.plist中設(shè)置Bundle display name為我們自定義的設(shè)置,${CusomAppName}该默。
App Name.png
4.2 配置Bundle ID和證書(shū)
不同的馬甲包可能是由不同的開(kāi)發(fā)者賬號(hào)發(fā)布的瞳氓,所以需要配置對(duì)應(yīng)的bundle id 和 證書(shū)。
bundle id 在Targets->Build Settings 中的Product Bundle Identifier設(shè)置栓袖。
bundleID.png
證書(shū)配置如下圖
證書(shū)配置
5.其他配置
在Targets->Build Settings->Preprocessor Macros中匣摘,可以根據(jù)Configuration配置不同的預(yù)編譯宏,根據(jù)這個(gè)預(yù)編譯宏的不同裹刮,在代碼里面也可以有不同的配置音榜,比如渠道號(hào),接口域名等捧弃。
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.總結(jié)
用這種方法能比較方便地實(shí)現(xiàn)多環(huán)境變量的配置
7. App被拒4.3如何處理
App被拒4.3分為兩種, 一種是機(jī)器4.3, 一種是人工審核4.3赠叼,我只說(shuō)機(jī)器審核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.
收到這種回復(fù)基本上就是機(jī)器審核4.3
解決方法是改類(lèi)名,方法名嘴办,文件夾的名字
1.將工程類(lèi)前綴改成另一個(gè)更長(zhǎng)的字符串瞬场,類(lèi)的后綴用其他字符串代替,名字盡量長(zhǎng)一點(diǎn)。
比如ZHQBaseViewController->ABCPrefixionBaseDirector(ABCPrefixionBaseVC等)
ZHQLoginView - > ABCPrefixionRegisterSurface
其他的Category 等也一起改掉
2.修改文件夾的名字涧郊,我也推薦用AppCode來(lái)改
3.添加垃圾代碼贯被,文件來(lái)混淆代碼,然后在現(xiàn)有的工程中調(diào)用
作者:wn