iOS_實現類似蒲公英、fir等發包平臺 通過URL分發內測APP
1 原理
itms-services://?action=download-manifest&url=https://down.techlz.com/static/wkysdq/manifest.plist 這就是一個APP安裝連結,用iPhone上的safari瀏覽器開啟這個連結 就會彈出一個Alert詢問是否安裝xxx軟體,下面我具體解釋一下這個連結。
1.1 連結的具體含義
- 連結的協議頭包括第一個引數itms-services://?action=download-manifest這是固定的,這就相當於safari內建了這麼一個邏輯規則,當safari識別到itms-services協議頭及action=download-manifest引數的時候,safari就明白這個連結是下載安裝APP的
- url=https://down.techlz.com/static/wkysdq/manifest.plist這個參數列示 這個APP的下載配置檔案的存放位置 這個連結必須是一個https的靜態檔案下載連結 也就是說把 https://down.techlz.com/static/wkysdq/manifest.plist這一段直接複製到瀏覽器開啟會自動下載一個manifest.plist檔案
- 用xcode或文字編輯器開啟這個manifest.plist會發現裡面包含了 ipa的基本資訊 包名、應用名稱、ipa的存放地址、縮圖地址等。
1.2 safari通過連結下載安裝APP的流程
- 首先safari識別出了這是安裝APP的連結
- safari通過url引數對應的url地址下載了manifest.plist檔案
- 通過manifest.plist描述的ipa下載資訊提示並下載對應的ipa安裝包
- 這個manifest.plist誰都可以下載,不過手機裝置如果不符合ipa包含的證書配置,那麼即使下載成功了也安裝不起來。
2 實現
瞭解了它的一個實現原理,接下來就是具體怎麼實現我們自己ipa包分發
2.1 實現itms-services協議的安裝連結
- 首先準備好伺服器,可以找公司的後臺,或者第三方比如七牛、阿里雲這些能存放檔案,並且能提供https下載連結的伺服器
- 把ipa,縮圖 都上傳到伺服器,獲取對應的https連結。
- manifest.plist檔案,可以直接用上述例子中的manifest.plist,用文字編輯器開啟把對應的內容替換成自己app相關的資訊就好了,或者在用xcode打包的過程中有這麼一個配置頁面,把include manifedt 打上勾,那麼在匯出的ipa資料夾中就包含了manifest.plist檔案
- 把生成的或配置好的manifest.plist檔案 也上傳到伺服器,得到manifest.plist的下載連結 以上幾個連結在配置好之後 可以先用瀏覽器開啟測試一些是否可以直接下載
- 拼接好完整的APP安裝地址就可以分發安裝 itms-services://?action=download-manifest&url=下載配置檔案(manifest.plist)的下載地址
2.2 類似蒲公英、fir的掃碼安裝
- 蒲公英提供的二維碼本質也是一個網頁地址 比如這個https://www.pgyer.com/UGsP
- 開啟這個地址也是不能直接安裝的 而是在底部有個安裝按鈕 ,說到這裡大家應該就明白了 當點選這個按鈕的時候 網頁執行一個action 實際就是開啟itms-services協議的一個連線
- 所以要實現掃碼安裝,實際就是寫一個網頁,網頁中有一個按鈕,這個按鈕繫結的事件就是 開啟itms-services協議的APP安裝連結,最後把這個網頁連結用網頁工具生成一個二維碼圖片提供給測試人員就可以了
相關文章
- [開源]愛釋出類似fir.im和蒲公英的App釋出平臺APP
- 如何實現完美、穩定、高效的APP內測分發?APP
- Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發JenkinsGitlabXCodeiOS
- APP內測分發有哪些優勢?APP
- 搜狐號內容分發平臺,一鍵分發多個自媒體平臺
- H5開發類似rpx實現方法H5
- 用Java 19實現類似Go併發 - mccueJavaGo
- 抖音內容分發工具,一鍵分發內容到全平臺
- TRONex智慧合約APP開發平臺(真實平臺)APP
- 如何通過Scikit-Learn實現多類別文字分類?文字分類
- 自媒體內容分發平臺有哪些?這4個平臺需要首發
- 短影片一鍵分發平臺,3分鐘分發全平臺
- jenkins+gitlab + 蒲公英實現 android 應用自動化打包分發JenkinsGitlabAndroid
- 開發類似鬥魚虎牙的運營級直播平臺多少錢
- 自媒體內容分發系統,把內容分發到30+平臺,賺取平臺收益
- 蘋果APP內測分發渠道究竟有幾種?蘋果APP
- 不通過App Store實現ios應用分發下載安裝APPiOS
- 通過 App Groups 實現程式間通訊APP
- GetX 實現類似微信轉發搜尋多選好友
- 微信APP分銷平臺開發有哪些優勢?APP
- carlo:類似Electron.js的谷歌平臺JS谷歌
- 直播平臺軟體開發,uni-app實現選項卡功能APP
- 開源一個自用的Android事件分發中心庫,實現類似系統廣播功能。Android事件
- 大魚號內容分發工具,多個平臺分發內容,一鍵管理200+賬號
- django url的分發Django
- 愛奇藝內容分發工具,分發多個平臺,運營多個賬號
- 好用的自媒體影片內容分發工具,分發全平臺,運營更高效
- 自媒體多平臺分發,多平臺分發優勢有這幾點
- 陪玩平臺原始碼實現類似手機懸浮按鈕,需要如何做?原始碼
- 測試開發【提測平臺】分享5-實現產品線的新增
- 測試開發實戰[提測平臺]17-Flask&Vue檔案上傳實現FlaskVue
- iOS打測試包與分發測試iOS
- 凹音短影片軟體開發(類似現成)
- PostgreSQL類似OracleMERGE功能的實現SQLOracle
- APP跨平臺開發技術分析APP
- 使用.net standard實現不同內網埠的互通(類似花生殼)內網
- 分發平臺如何支援熱更
- 畫江湖之 PHP 多程式開發 【通過訊號寫一個類似 nginx services 服務】PHPNginx