我寫了個前端頁面(https://pg.xlss.in/ipa/),用來分發ios程式的。目的是想用php動態產生plist字串,直接返回給瀏覽器,然後手機安裝對應的ipa。
測試網址:https://pg.xlss.in/ipa/test.html (ipa檔案寫的是內網地址)
用了一個實體.plist檔案,安裝正常;
itms-services://?action=download-manifest&url=https://pg.xlss.in/ipa/test.plist
用我php根據參數產生的xml,不成功。
itms-services://?action=download-manifest&url=https://pg.xlss.in/ipa/plist.php?ver=2.0.0&env=predist
xml和實體plist的內容一模一樣
回複內容:
我寫了個前端頁面(https://pg.xlss.in/ipa/),用來分發ios程式的。目的是想用php動態產生plist字串,直接返回給瀏覽器,然後手機安裝對應的ipa。
測試網址:https://pg.xlss.in/ipa/test.html (ipa檔案寫的是內網地址)
用了一個實體.plist檔案,安裝正常;
itms-services://?action=download-manifest&url=https://pg.xlss.in/ipa/test.plist
用我php根據參數產生的xml,不成功。
itms-services://?action=download-manifest&url=https://pg.xlss.in/ipa/plist.php?ver=2.0.0&env=predist
xml和實體plist的內容一模一樣
已經解決。可以不需要實體plist檔案。之前不成功的原因是:
itms-services://?action=download-manifest&url=https://pg.xlss.in/ipa/plist.php?ver=2.0.0&env=predist
url後的網址未進行urlencode
解決方式:
最後一個 url 後的網址需要對參數部分進行urlencode,範例:
$scope.install = function(){ var url = 'https://pg.xlss.in/ipa/plist.php'; var params = '?ver=' + $scope.data.version + '&env=' + $scope.data.environment; encodeParams = encodeURIComponent(params); window.location.href = 'itms-services://?action=download-manifest&url=' + url + encodeParams;};