蘋果企業賬號打包釋出APP流程詳解
一、通過企業賬號申請證書
1 Certificate Signing Request (CSR)檔案
在Mac系統中進入“鑰匙串訪問”,選擇“鑰匙串訪問”-“證書助理”-“從證書頒發機構請求證書…”,如圖1所示:
—>填寫前兩項,並選擇“儲存到磁碟”,如圖2所示:
2 請求Certificate證書
登入https://developer.apple.com —>MemberCenter—>Certificates, Indentifiers & Profiles—>Certificates,如圖3所示:
—>在圖4頁面,點選右上角加號,新增一個證書:
—>選擇In-House and Ad Hoc,點繼續,如圖5所示:
—>如圖6:Choose File選擇第1步的CSR檔案上傳,點選generate生成cer證書,下載後雙擊安轉(需要輸入Mac的密碼)
3 App ID
點選右上角的加號按鈕,如圖7所示:
—>有兩項需要填(如圖8所示),name為描述可以隨便填寫.bundleID必須與APP的bundleID完全一致(如圖9所示)。至於App Services根據自己需要選擇。最後點選繼續->submit->done
4 生成最終的Provisioning Profile(企業版不需要device即iPhone的UDID,因此跳過)。
選擇Provisioning Profile->ALL,點選右上角加號:
—>選擇剛建立的AppID,點選繼續,如圖12所示:
—>選擇cer證書點選繼續.圖13 給最終生成的Profile檔案命名方便自己識別。然後點選生成,並下載雙擊開啟。至此證書環節完畢
二、打包ipa,手動生成plist
這一步開始前,需要將手機插入電腦,並除錯選項選擇真機。(防止無法Archive),如果沒有真機,可以選擇iOS Device(這個沒有測試)。
1 打包ipa
1.1 Edit scheme
用Xcode開啟對應APP。Product->Scheme->Edit scheme,填寫Archive name,即為打包後的ipa名字,如圖14所示
1.2 選擇對應證書,即剛才生成的證書,如圖15所示:
1.3 歸檔,Product->Archive,並按圖16,圖17操作:
完成之後會生成一個ipa包。
三、釋出APP
要釋出還必須有一個plist檔案,在Xcode6之前會自動生成一個plist檔案,但是Xcode6之後需要我們自己建立plist,文章最後提供一個plist模板,複製並重命名為plist後開啟根據提示操作即可.圖18為plist的截圖,可以看到有三個URL,分別存放ipa,大小圖示。下圖的1(ipa)、2(大圖)、3(小圖)填寫我們自己生成的URL,即將ipa和大小圖示放在我們自己的伺服器,當用Safari開啟plist時會根據填的plist裡面的1、2、3對應的URL來下載安裝ipa、大小圖示。
那麼plist放在哪裡呢(即Safari開啟plist的URL是多少呢)?蘋果對plist存放地址有要求,必須是https的,如果沒有https網站,我們可以把plist放在https://git.oschina.net。具體做法就是在上面建立一個專案(不能是私人的),然後將編輯好的plist傳到專案,最後將plist的URL賦值下來,比如。然後我們在Safari中輸入:itms-services:///?action=download-manifest&url=就可以安裝了(一定要將紅色字串和藍色URL一起輸入)。
Safari操作的具體流程是:
1 Safari解析我們輸入的那一串字串,找到plist檔案
2 根據plist檔案裡面提供的資訊下載並安裝ipa包,還會訪問大小圖示,大小圖示在ipa包正在下載時顯示,當下載完畢後顯示程式自帶的圖示
下載安裝後,如果想開啟程式還需要在手機 設定->通用->描述檔案與裝置管理(不同系統可能名字不一樣) 裡面選擇相應的證書信任後,方可開啟程式
注意,公用的https連結會被封掉,可以試試github,百度雲,七牛雲端儲存等等。最好還是用自己的
下面是plist模板的文字形式,將其複製到文字然後重新命名.plist,用Xcode開啟按照提示編輯即可。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 <plist version="1.0"> 4 <dict> 5 <key>items</key> 6 <array> 7 <dict> 8 <key>assets</key> 9 <array> 10 <dict> 11 <key>kind</key> 12 <string>software-package</string> 13 <key>url</key> 14 <string>ipa包URL(必填)</string> 15 </dict> 16 <dict> 17 <key>kind</key> 18 <string>full-size-image</string> 19 <key>needs-shine</key> 20 <false/> 21 <key>url</key> 22 <string>下載時大圖(非必填)</string> 23 </dict> 24 <dict> 25 <key>kind</key> 26 <string>display-image</string> 27 <key>needs-shine</key> 28 <false/> 29 <key>url</key> 30 <string>下載時小圖(非必填)</string> 31 </dict> 32 </array> 33 <key>metadata</key> 34 <dict> 35 <key>bundle-identifier</key> 36 <string>BundleID(必填)</string> 37 <key>bundle-version</key> 38 <string>1.0</string> 39 <key>kind</key> 40 <string>software</string> 41 <key>subtitle</key> 42 <string>副標題(非必填)</string> 43 <key>title</key> 44 <string>應用名(必填)</string> 45 </dict> 46 </dict> 47 </array> 48 </dict> 49 </plist>