目標(biāo)
企業(yè)賬號打包的enterprise
類型ipa可以安裝到所有的iPhone設(shè)備上,這篇文章講述怎樣在自己的服務(wù)器上搭建分發(fā)下載平臺懂酱。
準(zhǔn)備階段
1.服務(wù)器必須支持Https協(xié)議(蘋果文檔原話:對于 iOS 7.1 或更高版本缸濒,使用 HTTPS)
2.ipa文件&&對應(yīng)的plist文件
Product
->Archive
->Export
->Enterprise
->Addition Options
Name
:應(yīng)用名稱App URL
:ipa包在服務(wù)器上的下載地址Display Image URL
:57 x 57 像素的 PNG 圖像腺占,在下載和安裝過程中顯示。指定圖像的完全限定 URLFull Size Image URL
:512 x 512 像素的 PNG 圖像,表示 iTunes 中相應(yīng)的應(yīng)用生成的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://example.com/example.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>https://example.com/image.57x57.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>https://example.com/image.512x512.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.xxx.xxx</string>
<key>bundle-version</key>
<string>1.0.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>Example</string>
</dict>
</dict>
</array>
</dict>
</plist>
3.下載入口HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
</head>
<body>
<a href="itms-services://?action=download-manifest&url=https://example.com/manifest.plist">Install App</a>
</body>
</html>
整合
把ipa包&&對應(yīng)的plist文件&&入口HTML文件部署到服務(wù)器即可狮斗。如果部署好之后悔雹,后期有修改plist文件的內(nèi)容,重新部署之后可能會遇到“無法下載應(yīng)用”的莫名錯誤瘦馍,這是因為manifest.plist文件在客戶端的緩存問題歼秽,建議把plist文件改個名稱再部署下。
三方平臺代簽企業(yè)簽名踩到的坑
可能有些公司沒有自己的企業(yè)賬號情组,使用了三方平臺代簽企業(yè)簽名燥筷,大致流程是我們用自己的開發(fā)者賬號打個ad-hoc類型的ipa包,交給三方平臺重新簽名院崇,拿到企業(yè)賬號簽名后的ipa包就可以搞事情了肆氓。
今天拿到蒲公英給我們的ipa包之后,部署到服務(wù)器底瓣,下載安裝時卻顯示“無法下載應(yīng)用”的錯谢揪,排查問題最后發(fā)現(xiàn)是manifest.plist文件中的bundle-identifier
值和ipa包中的bundle-identifier
不一樣。
排查步驟
首先懷疑ipa包本身有問題捐凭,驗證方法:使用itools軟件直接安裝ipa包拨扶,結(jié)果可以安裝到任意手機,排除ipa包有問題這種可能性茁肠。
然后懷疑是manifest.plist文件和ipa包中信息的不一致情況患民,頭一個懷疑對象就是bundle-identifier
。驗證方法:解壓ipa包垦梆,找到embedded.mobileprovision文件匹颤,復(fù)制到桌面,在終端中輸入命令:security cms -D -i /Users/xx/Desktop/embedded.mobileprovision
托猩,拿到簽名用的<key>application-identifier</key> <string>L3562L3CD5.com.xxx.xx</string>
這里com.xxx.xx
才是真正的bundle-identifier
印蓖,這與manifest.plist文件中的內(nèi)容不一致,修改之后重新部署下就可以下載了京腥。
參考鏈接
企業(yè)帳號進行IPA的打包另伍、分發(fā)、下載安裝的詳細(xì)流程(轉(zhuǎn)載)
蘋果文檔--以無線方式安裝企業(yè)內(nèi)部應(yīng)用
iOS學(xué)習(xí)之如何查看.ipa測試包用到的證書所包含的UDID
iOS開發(fā)各種證書問題