[七]打包時遇到問題:
錯誤:
錯誤1.證書配置不對
錯誤2:
2.archive的時候報“no identity found"錯
錯誤3:若Archive為灰色(不可點)
1.證書問題
要打包ipa首先需要設置code sign identity,一個應用需要打包至少需要三個要素:證書鞭铆,APP ID扳埂,還有一個容易被忽略的provisioning profile彼妻。
證書的申請流程到處都可以找到,這里只簡單介紹一下贵试,首先使用鑰匙串創(chuàng)建一個certSigningRequest文件柴梆,然后登錄apple developer的ios developer申請證書熏瞄,將certSigningRequest文件上傳,生成一個證書饲鄙,將它下載下來即可凄诞。接著是APP ID,仍然是到apple developer創(chuàng)建忍级,一般是公司域名的倒寫加應用名帆谍。就是通過provisioning profile,它也是通過apple developer官網(wǎng)創(chuàng)建轴咱,在創(chuàng)建時會讓你選擇類型汛蝙,打包ipa測試的話就選擇AD HOC烈涮,記得添加UDID,創(chuàng)建后下載下來生成mobileprovision文件窖剑,雙擊運行即添加到資源庫中去跃脊,而xcode在讀取你的系統(tǒng)里的證書時實際上是在查找資源庫里面的provisioning profile。provisioning profile包含了證書苛吱,APP ID和UDID列表酪术,archive后這些信息會被加入ipa中。
錯誤4."file not found"
在archive時會碰到一個蛋疼的問題翠储,就是明明在模擬器編譯運行都正常绘雁,但是打包ipa時卻報一個找不到頭文件的錯,這是由于直接編譯時使用的是你的系統(tǒng)的頭文件目錄援所,而archive時使用的時SDK下的頭文件目錄庐舟,一般情況下這兩者時一致的,但是有些特殊庫的頭文件住拭,如libxml挪略,在系統(tǒng)下/usr/include/libxml2是包含在頭文件自動搜索范圍內(nèi)的,而SDK中這個目錄不在自動搜索范圍內(nèi)滔岳,所以就會報一個"file not found"杠娱。
解決方式就是在編譯參數(shù)里面添加一個頭文件搜索目錄,工程->build setting谱煤,搜索header search paths摊求,添加你需要手動添加的頭文件目錄,如/usr/include/libxml2刘离。
3.顯示archive success室叉,但是organizer不能自動彈出,手動打開也看不到剛剛打的包硫惕,或者沒有share按鈕可點
遇到這種問題可能有各種不同的原因茧痕,但是我敢說90%以上都是因為同一個原因,而這個問題的解決方法也超簡單恼除,工程->build setting踪旷,搜索deployment,找到skip install項缚柳,將其改成NO埃脏,target->build setting,搜索deployment秋忙,找到skip install項彩掐,將其改成NO,
解決方法:
注意:請先確保證書設置沒有問題
在Xcode中當你在更新了你得證書而再重新編譯你的程序灰追,真機調(diào)試會出現(xiàn)“Your build settings specify a provisioning profile with the UUID‘XXX’, however, no such provisioning profile was found.??Xcode can resolve this issue by downloading a new provisioning profile from the Member Center.”堵幽。解決方案如下:
1.關(guān)閉項目狗超,找到項目文件XXXX.xcodeproj,在文件上點擊右鍵朴下,選擇“顯示包內(nèi)容”(Show Package Contents)努咐。會新打開一個Finder。
2.在新打開的Finder中找到project.pbxproj殴胧,并且打開渗稍,找到所有包含報錯的UUID‘XXX’的行(包含UUID后面的一串數(shù)字的行,可能不包含"UUID")团滥,整行刪除竿屹。
3.保存,重新啟動項目灸姊,再編譯拱燃,就OK了。