背景
最近升級公司內(nèi)部使用的一個(gè)App,打好測試包后,發(fā)現(xiàn)無法正常安裝,提示安裝失敗。進(jìn)行了一番排查,這里記錄下測試包無法安裝的一些常見原因。
原因
此次安裝包升級失敗的原因:沒有版本號。通過控制臺日志,查看安裝相關(guān)的日志,提示App缺少版本號,無法安裝。具體為什么在打包時(shí)沒有帶上版本號CFBundleVersion的原因這里也分享下。
我們的項(xiàng)目是通過xcconfig文件控制打包信息的,根據(jù)測試包面向的用戶不同,一般會(huì)分為InHouse、DailyBuild等不同配置的測試包,分別使用不同的xcconfig文件來定義不同的配置信息。但是有一些相同的信息,可以統(tǒng)一定義到一個(gè)CommonInfo.xcconfig的文件里,然后在定義具體配置的xcconfig文件中#include "CommonInfo.xcconfig"。以DailyBuild配置的xcconfig文件為例:
//DailyBuild.xcconfig
#include "CommonInfo.xcconfig"
PRODUCT_BUNDLE_IDENTIFIER = xxx.xxx.xxx
APP_NAME = xxx
通過#include的方式,可以包含CommonInfo.xcconfig里定義的內(nèi)容,類似C語言頭文件引用的方式。
這次的具體原因則是我們在新增的配置類型時(shí),對應(yīng)的xcconfig文件沒有引用CommonInfo.xcconfig,在使用xcodebuild進(jìn)行構(gòu)建測試包時(shí),版本號沒有帶上,所以導(dǎo)致安裝失敗了。
xcconfig文件的使用另起一篇記錄
常見原因
這里引用蒲公英提供的問題匯總 -> 傳送門 。查詢x安裝失敗原因的方法 -> 傳送門 (本次問題排查也是借鑒該方式,成功定位到具體原因的)。