1. 問題描述
??打包發(fā)布的過程中出現(xiàn)了一個比較嚴(yán)重的一個問題蚀浆,在新版本發(fā)布的時(shí)候惭嚣,錯誤的把Test環(huán)境的包發(fā)布到了appstore上面攒磨。
??項(xiàng)目在打包發(fā)布的時(shí)候我們需要動一個地方,就是在Edit Scheme里面把Archive的環(huán)境調(diào)整為release環(huán)境戈鲁,不進(jìn)行變動的話可能之前打過Test環(huán)境的包交付測試碟渺,導(dǎo)致最終誤把Test環(huán)境當(dāng)做正式包發(fā)送出去杰妓。
??目前項(xiàng)目中的環(huán)境代碼判斷如下:
#if DEBUG?
?static var currentEnvironment: EnvironmentType = .development
? ? #elseif LWTest? ? ? ?
?static var currentEnvironment: EnvironmentType = .test
? ? #else? ? ? ?
?static var currentEnvironment: EnvironmentType = .product
? ? #endif
通過Edit Scheme里面的Build Configuration判斷的當(dāng)前環(huán)境秽澳。
2. 解決方案
??從代碼層面來講,目前還沒有想到一個比較好的方案罩扇,但是拋除代碼,如果有一個警告框怕磨,在你打包或者運(yùn)行的時(shí)候進(jìn)行一個提示喂饥,告訴你當(dāng)前的環(huán)境是什么,并且在Archive之后告訴你當(dāng)前的包是什么環(huán)境的包肠鲫,我想會解決90%以上打包錯誤的問題
操作步驟:
1.選擇Edit Scheme -> build展開 -> 選擇Pre-actions员帮,這個actions就是在build構(gòu)建之前可自定義的一個動作,目前為No Actions导饲。
2.然后捞高,點(diǎn)擊靠近左下角的+號 -> 選擇New Run Script Action -> provide build settings from 選擇當(dāng)前的項(xiàng)目 -> 下面代碼區(qū)域輸入
osascript -e 'tell app "Xcode" to display notification "當(dāng)前 Xcode Build設(shè)置:'${CONFIGURATION}'"'
3.點(diǎn)擊close,運(yùn)行項(xiàng)目渣锦,會發(fā)現(xiàn)右上角多了一個提示硝岗,顯示當(dāng)前的Build Configuration是選擇的什么環(huán)境。
以上的方案只是在你Run袋毙,或Archive的時(shí)候進(jìn)行的一次提示型檀,萬一有人真的忽略了這個提示呢,要杜絕任何一絲出現(xiàn)錯誤的可能听盖,所以根據(jù)以上步驟針對Archive再進(jìn)行一次修改胀溺。
同理展開Archive -> 選擇Pre-actions -> 點(diǎn)擊靠近左下角的+號 -> 選擇New Run Script Action -> provide build settings from 選擇當(dāng)前的項(xiàng)目 -> 下面代碼區(qū)域輸入
if [ $CONFIGURATION != "Release" ]; then
osascript -e 'tell app "Xcode" to display dialog "正在非Release打包!當(dāng)前環(huán)境'$CONFIGURATION'"'
fi
這樣皆看,當(dāng)Archive完成之后仓坞,檢驗(yàn)當(dāng)前的包是否是在Release環(huán)境,如果不是會多一個警告框悬蔽,點(diǎn)擊OK才可進(jìn)行下一步操作扯躺。