1. iOS9以後,企業級分發ipa包將遭到與Mac上dmg安裝包一樣的待遇:默認不能安裝,也不再出現「信任按鈕」解決辦法
2. iOS9以後,企業分發時可能存在:下載的ipa包與網頁兩者的 bundle ID 無法匹配而導致下載失敗的情況 解決辦法
我們都知道iOS8企業分發有個bug,就是當因爲某種原因更改manifest文件(plist文件)後,導致「無法現在安裝程序」 的bug,解決方法就是把plist文件中的bundle-identifier隨便加個後綴即可安裝成功,比如org.skyfox.cient 改成了org.skyfox.client8 ,因爲ios8之前是不校驗manifest plist中bundle-identifier是否和app的真實bundle ID相同,所以好用哦耶!(並且還得考慮比如七牛這樣的服務商cdn緩存問題 刷新緩存)
然而好景不長,iOS9發佈後蘋果封堵了這個解決方案(其實蘋果並不知道到 這個bundle-identifier坑了多少童鞋啊! ),進行bundle-identifier校驗,所以之前的解決方法完全不通!。提示信息如下!
今天仔細的研究了下問題的根源,根源所在並不是Safari瀏覽器或者七牛的緩存問題,這些問題可以輕易排查並且解決,最後通過Xcode或者 log guru小工具 查看設備實時日誌,發現當iOS設備安裝itms-services://協議的軟件時候會尋找是否在緩存的plist文件中匹配,若匹配,會讀取緩存後的plist文件,並且校驗緩存文件中 「bundle-identifier是否和app的真實bundle id相同」, 假如緩存了錯誤的plist那麼 很長時間都會校驗失敗 導致無法安裝,同樣會提示 」無法下載應用程序 此時無法安裝「。查看log變成了 「Ignore manifest download, already have bundle ID」,證明猜想正確
那麼究竟是根據什麼規則進行緩存的plist文件那,接下來我用ifunbox等工具打開了設備的文件系統,發現最後找到了一個download.28sqlitedb數據庫,當中記錄了APP bundle ID 對應的plist等信息,bundl ID恰好是錯誤的plist中的bundl ID,但這並不能得出結論緩存了plist文件,找了找沒找到存在什麼地方,感興趣的可以找找!! 目測是在類似目錄:/var/mobile/Library/Caches/
假如我的安裝地址是: itms-services://?action=download-manifest&url=https://www.skyfox.org/cient.plist
步驟:
有人說也可以重啓設備 緩存即可消失,本人測試無效!
多次實驗得出結論,蘋果設備是根據plist文件url進行緩存
解決方法 即 「url變更爲 https://www.skyfox.org/cient.plist?隨機數」或者每次都更改plist文件的域名啊 地址啊 等等方法!
如果您有其他不同意見可以隨時聯繫我改正