在Iphone手機中如果用戶安裝了某些app會在手機的設置-通用最下方看到一欄“描述文件”,網上說描述文件是xml文件,記錄了特定app的一些重要信息,比較重要。我寫這篇博文主要是爲了記錄我在開發中遇到的一個跟描述文件有關的問題,希望對大家以及6個月以後的我有一些啓示。
問題描述:
QA測試用的手機QAIphone6在用pp助手安裝app的時候總是失敗,提示“ApplicationVerificationFailed”,而給其他手機用同樣方式安裝此app時可以順利安裝成功。
解決嘗試:
網上查了下,天南地北的說啥的也有,看的我眼花繚亂的,而主要的解決方法都是說“越獄.....”,即都是針對越獄機器的,可是QAIphone6根本就沒越獄啊,這有點愁人。於是決定用自己的小4搗鼓搗鼓。由於只有QAIphone6安裝失敗而其他的安裝成功,因此把目標定位在QAIphone6的“配置”上。無意之中看到了小4設置裏面的“描述文件”一欄,裏面有“inhouse_for_any”,這不正是我打包用的Provisioning Profile麼,於是:
①刪掉了這個描述文件,然後刪掉之前安裝的app,在通過pp助手進行安裝。果然不出所料,這回安裝失敗,且提示信息也爲“ApplicationVerificationFailed”。
②之後,我通過Xcode直接在小4上跑,發現這個“inhouse_for_any”又被安裝到了小4上。於是刪掉app,通過pp助手再次安裝app,這次安裝成功。
通過以上兩次實驗猜測:app是否能通過pp助手安裝成功跟這個“描述文件”一定有大關係。
爲了解決這個問題,我研究了下Xcode,發現通過Xcode可以很方便的把項目使用的Provisioning Profile安裝到手機上。具體步驟如下:(以下例子僅爲演示具體步驟,不採用上邊談到的“inhouse_for_any”)
(1)找到對應的Provisioning Profile。
其實Xcode項目中顯示的Provisioning Profile是以mobileprovision爲擴展名的文件。如圖:
爲找到Layne3對應的具體文件,可採用如下方法:
①頂部Xcode->Preferences,在彈出的對話框中選擇Account標籤頁,如下圖:
如果當前沒有賬號,則使用左下角的+號添加你的開發者賬號,添加完成後如上圖所示。
②選擇右下角的“View Details”,彈出如下對話框:
這時對話框下方就是與這個開發者賬號關聯的所有Provisioning Profile文件,鼠標在Layne3上點擊右鍵,選擇“Show in Finder”即可打開對應文件夾查看到實際的.mobileprovision文件:
事實上,這個mobileprovision文件就是在~/Library/MobileDevice/Provisioning Profiles文件夾下,但名字是亂的,一般用戶直接進入這個文件夾是無法直接找到自己需要的mobileprovision的,這會是個體力活,也是技術活。找到之後,我們將它複製到桌面上。
(2)給手機安裝Provisioning Profile(即.mobileprovision文件)
將手機連接到電腦上,然後在Xcode的頂部Window菜單下選擇Devices,如下圖:
在彈出的對話框選擇具體的設備,右擊鼠標,並選擇“Show Provisioning Profiles”,如圖:
在這個對話框裏,用戶就可以很方便的通過左下角的+和-來爲手機添加或刪除Provisioning Profiles了。
爲手機添加好對應的Provisioning Profile之後再通過PP助手安裝app就應該沒問題了。
注意:
在整個過程中還有一點需要說明,那就是有的手機即使你安裝了Provisioning Profile,手機的設置-通用裏面也不會顯示“描述文件”一欄(至少我的5s是這樣),具體原因還不清楚。所以,對於要查看某個手機是否安裝有Provisioning Profile,用以上提到的方式應該是最靠譜的。