前端實現iPhone繞過AppStore從瀏覽器安裝App


背景

都知道 iPhone 蘋果手機應用只能通過 AppStore 進行安裝,測試包只能通過官方提供的 TestFlight 等工具安裝,而且通常有較長的審核流程,無法及時更新安裝包,非常不方便。本文主要介紹前端實現對簽名成功的 App直接通過瀏覽器下載安裝,開發者可以及時提供測試 App

主要流程

  • 前提條件,蘋果 App 必須簽名成功,這一步由 iOS 應用開發者完成。
  • 上傳到服務器,獲得信息和下載地址,得到兩個文件,一個是 plist 文件和 ipa 文件,及 app 圖標。
  • 通過訪問 plist 文件來達到下載 ipa 文件和圖片的目的,使用了蘋果 safari 瀏覽器自帶協議,用a標簽或者 window.open 方式打開 plist 地址。
  • 信任設備並安裝。
itms-services:///?action=download-manifest&url=一個https地址

下面是幾個過程的具體實現

具體實現

上傳資源到服務器

公司文件可部署到公司服務器,自己測試文件可以使用 github 等免費提供文件地址的服務。

  • ipa:需要安裝的蘋果 App 打包文件,由 iOS 客戶端提供;
  • logo:圖片格式的 App 圖標;
  • plistApp 下載配置文件。

由客戶端生成 plist 文件

📃 app.plist:由客戶端配置或更改下面 ipa 下載地址、App 圖標地址及 App 描述信息。

<?xml version="1.0" encoding="UTF-8"?>
<! DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>items</key>
  <array>
    <dict>
      <key>assets</key>
      <array>
        <dict>
          <key>kind</key>
          <string>software-package</string>
          <key>url</key>
          <string>https://ipa 下載地址</string>
        </dict>
        <dict>
          <key>kind</key>
          <string>display-image</string>
          <key>needs-shine</key>
          <true/>
          <key>url</key>
          <string>https://app 圖標地址</string>
        </dict>
      </array>
      <key>metadata</key>
      <dict>
        <key>bundle-identifier</key>
        <string>com.xxxx.xxxx.xxxx</string>
        <key>bundle-version</key>
        <string>0.1.0</string>
        <key>kind</key>
        <string>software</string>
        <key>title</key>
        <string>APP名稱</string>
        <key>subtitle</key>
        <string>App描述</string>
      </dict>
    </dict>
  </array>
</dict>
</plist>

下載頁面

📃 install.html:提供給用戶的下載 html 頁面,具體 樣式功能可根據自己的需求調整。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
  <button id="button">下載</button>
  <script>
    document.getElementById('button').addEventListener('click', function() {
      window.open('itms-services:///?action=download-manifest&url=https://pan.xchjw.cn/download/app/CorpPrivateInstall.plist', '_self')
    })
  </script>
</body>
</html>

實現效果

將下載地址提供給需要的人,點擊下載按鈕即可實現 App 安裝。

市場上很多的分發平台,如蒲公英就是這么做的。

注意:

  • 只可在蘋果 safari瀏覽器 中實現下載,其他瀏覽器中打開可做一些引導提示。
  • 需要注意的是從 ios7.1 開始,http 推送 plist 已經不能用了,只能使用 https 推送,因此訪問這個文件的地址必須是 https 開頭的。你可以配置自己的服務器支持 https 服務,也可以借助第三方工具。

其他第三方app托管下載服務

我們不必這么麻煩自己部署這么多文件,完全可以借助第三方應用內測分發平台,比較出名的有下面幾個:

  • fir.im:免費應用內測托管平台,iOS 應用 Beta測試 分發,Android 應用內測分發
  • 蒲公英:免費的應用托管平台,App 應用眾測分發。
  • Pre.im:APP內測托管平台首選 - Beta測試,免費的應用內測托管平台。
  • TestFlight Beta Testing:蘋果官方測試平台工具。

文章地址:https://www.cnblogs.com/dragonir/p/14412729.html 作者:dragonir


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM