背景
最近升級公司內(nèi)部使用的一個App鉴象,打好測試包后缆镣,發(fā)現(xiàn)無法正常安裝司浪,提示安裝失敗望薄。進行了一番排查,這里記錄下測試包無法安裝的一些常見原因今缚。
原因
此次安裝包升級失敗的原因:沒有版本號察皇。通過控制臺日志,查看安裝相關(guān)的日志若锁,提示App缺少版本號,無法安裝斧吐。具體為什么在打包時沒有帶上版本號CFBundleVersion
的原因這里也分享下又固。
我們的項目是通過xcconfig
文件控制打包信息的,根據(jù)測試包面向的用戶不同煤率,一般會分為InHouse
仰冠、DailyBuild
等不同配置的測試包,分別使用不同的xcconfig
文件來定義不同的配置信息蝶糯。但是有一些相同的信息洋只,可以統(tǒng)一定義到一個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語言頭文件引用的方式妒茬。
這次的具體原因則是我們在新增的配置類型時担锤,對應(yīng)的xcconfig
文件沒有引用CommonInfo.xcconfig
,在使用xcodebuild
進行構(gòu)建測試包時乍钻,版本號沒有帶上肛循,所以導(dǎo)致安裝失敗了铭腕。
xcconfig文件的使用另起一篇記錄
常見原因
這里引用蒲公英
提供的問題匯總 -> 傳送門 。查詢x安裝失敗原因的方法 -> 傳送門 (本次問題排查也是借鑒該方式多糠,成功定位到具體原因的)累舷。