ios企業證書打包及發佈ipa

在開發中,我們需要進行對應用程序進行調試,有如下打包方案
1.iOS 無證書真機調試流程
2.個人/公司證書
3.企業證書
在使用企業證書打包時,能夠通過分發子證書的形式去打包,在分發的子證書中,只需要企業內其他開發者生成
如下證書和描述文件,還有一個在證書中綁定的應用Bundle identifier即可:
企業證書

在內部非主機開發者使用的時候,只需要將p12(導入時需要導出時設置的密碼)文件導入到鑰匙串,然後在Xcode中[項目名->target->build settings->Code Signing Identity]處選擇導入的鑰匙串,在[項目名->General->Signing->Provisioning Profile]描述文件處(provisioning profile)進行[Import Profile]hellowoeee.mobileprovision這個描述文件即可進行打包

對於上面這種行爲就是指定證書打包方式,當然還有自動管理證書打包方式,自動簽名管理打包只需要在[項目名->General->Signing->Automatically manage signing]選中下面按鈕,然後進行打包即可

注意:
1.如果是指定證書打包的形式,是不用登錄原企業賬號的,只需要p12文件、p12文件的密碼和綁定在證書上的bundle identifier 、證書文件
2.自動管理是需要登錄企業證書賬號的,用於自動管理證書

在打包完成之後,我們需要提供給使用者進行下載,此時有以下解決方案:
1.上傳到內側平臺,如fir.im、蒲公英平臺等
2.自己搭建服務器,在自己搭建服務器的時候,需要注意的是必須需要https服務器才能夠進行提供下載功能,準確的說就是這個plist文件是需要https服務器的,在下載的時候,需要在服務器上面提供ipa文件、bp.plist文件,在需要下載的按鈕或者a標籤處直接訪問bp.plist文件即可,而此時bp.plist文件的內容需要指定到ipa文件存放的地址,如下所示內容爲bp.plist
[我這邊測試過,可以將自己使用的plist文件存放到github或者碼雲上面擁有https協議的存儲管理上面,然後複製raw方式文件地址,如下面所示這種地址形式]

https://raw.githubusercontent.com/suwu150/web-crawler/master/test/bp.plist

下面就是我在項目中使用的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>md5</key>
					<string>247c3c09df432fe363d18f4b288c38b8</string>
					<key>url</key>
					<string>https://www.suwu150.cn:9080/ios/codeFile.ipa</string>
				</dict>
				<dict>
					<key>kind</key>
					<string>display-image</string>
					<key>needs-shine</key>
					<false/>
					<key>url</key>
					<string>https://www.suwu150.cn:9080/ios/ios.png</string>
				</dict>
			</array>
			<key>metadata</key>
			<dict>
				<key>bundle-identifier</key>
				<string>com.suwu150.ied</string>
				<key>kind</key>
				<string>software</string>
				<key>title</key>
				<string>rrrr</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

如上面所示代碼,md5鍵值是需要和文件中的一致,否則在ios13系統中是不能夠安裝的,會安裝到一半然後提示無法安裝,請稍後重試彈窗,獲取md5碼值的方法參考下面代碼,url所指定的位置就是.ipa的位置,在點擊按鈕或者a標籤下載的時候,會通過ituns進行下載這個文件進行安裝,display-image是在安裝時需要顯示在桌面上的圖標,如果沒有該條值,則在安裝時會顯示白色空白圖標(默認圖標)進行顯示。
獲取md5值:

var fs = require('fs');
var crypto = require('crypto');
var path = './codeFile.ipa';
var start = new Date().getTime();
var md5sum = crypto.createHash('md5');
var stream = fs.createReadStream(path);
stream.on('data', function(chunk) {
  md5sum.update(chunk);
});
stream.on('end', function() {
  str = md5sum.digest('hex');
  console.log('文件:'+path+',MD5簽名爲:'+str+'.耗時:'+(new Date().getTime()-start)/1000.00+"秒");
});


編輯日期2019-12-2日

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章