需求
app開發的時候需要進行測試,每次頻繁的拷貝發送;iOS 的企業包上傳到分發平臺無法通過,有限制等等,這個時候就需要我們自己有自己的分發平臺。Android的apk
比較好解決,比較麻煩的是iOS的分發(主要針對企業包,或者加了uuid的測試包)。第三方分發平臺也有第三方的好處,但是自己搭建的更自由。
準備
- 企業簽名過后的ipa包、apk
- 一個域名
- 一臺服務器
- 一個https證書
搭建環境
搭建一個nginx web 環境
首先使用nignx搭建一個web環境,web的頁面可以自己寫,或者抓取第三方的(頁面的內容其實簡單,主要包括判斷是否在微信,如果在微信,提示使用瀏覽器打開)。
大家一般都是使用微信的掃一掃
獲取apk、ipa、plist、iOS app icon文件公網地址
配置好域名解析、對應的nginx文件配置后,得到apk、ipa、plist、icon四個文件的下載地址。
`https://xxxx.xxxx.com/xxx.apk`
`https://xxxx.xxxx.com/xxx.ipa`
`https://xxxx.xxxx.com/xxx.plist`
`https://xxxx.xxxx.com/xxx.png`
配置plist文件的內容
<?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://xxx.xxx.com/download/xxx.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://xxx.xxx.com/img/xxx.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>io.xxx.xxx</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string>xxx</string>
<key>title</key>
<string>xxx</string>
</dict>
</dict>
</array>
</dict>
</plist>
需要修改software-package
、display-image
、subtitle
、title
software-package
使用 https://xxxx.xxxx.com/xxx.ipa
的地址
配置地址
在下載頁面配置apk
下載地址以及plist
地址,這里需要注意,由于iOS 的安全機制,plist文件需要使用https地址,否則會導致ipa 文件無法正常安裝。
總結
主要配置的其實就是iOS 的下載所需的plist文件,以及https訪問,如果這兩個地方出錯,會導致ipa 下載正常,確無法正常安裝。