1、遇到的問題
- 一款App在別人的機器上開發和發布,現在迭代更新和開發需要在一臺新mac機上開發和發布。
- (使用同一個開發者賬號)問題:
- 1.在新mac機器上開發并導入真機測試,是不是需要從別人的機器上面導處開發者證書、開發者授權文件和開發密鑰導入到新mac機器上才能開發?
- 2.程序迭代開發完成,App上傳蘋果應用商店的時候是不是還需要用老機器發布才可以才能保證App更新?能不能從老機器上面把發布證書導入到新機器上,用新機器發布App?解決方案:
2、App開發和發布過程中證書基礎知識:
2.1 Certification(證書)
- 證書是對電腦開發資格的認證,每個開發者帳號有一套,分為兩種:
- 1)Developer Certification(開發證書)
- 安裝在電腦上提供權限:開發人員通過設備進行真機測試。
- 可以生成副本供多臺電腦安裝;
- 2)Distribution Certification(發布證書)
- 安裝在電腦上提供發布iOS程序的權限:開發人員可以制做測試版和發布版的程序。
- 不可生成副本,僅有配置該證書的電腦才可使用;(副本制做介紹在下面Keychain中介紹)
2.2 Provisioning Profile(授權文件)
- 授權文件是對設備如iPod Touch、iPad、iPhone的授權,文件內記錄的是設備的UDID和程序的App Id,即使被授權的設備可以安裝或調試Bundle identifier與授權文件中記錄的App Id對應的程序。
- 開發者帳號在創建授權文件時候會選擇App Id,(開發者帳號下App Id中添加,單選)和UDID(開發者帳號下Devices中添加最多100個,多選)。
- 授權文件分為兩種,對應相應的證書使用:
- 1)Developer Provisioning Profile(開發授權文件)
- 在裝有開發證書或副本的電腦上使用,開發人員選擇該授權文件通過電腦將程序安裝到授權文件記錄的設備中,即可進行真機測試。
- 注意:確保電腦有權限真機調試,即安裝了開發證書或副本;在開發工具中程序的Bundle identifier和選中使用的授權文件的App Id要一致;
- 連接調試的設備的UDID在選中的授權文件中有記錄。
- 2)Distribution Provisioning Profile(發布授權文件)
- 在裝有發布證書的電腦上(即配置證書的電腦,只有一臺)制做測試版和發布版的程序。
- 發布版就是發布到App Store上的程序文件,開發者帳號創建授權文件時選擇store選項,選擇App Id,無需選擇UDID;
- 測試版就是在發布之前交給測試人員可同步到設備上的程序文件,開發者帳號創建授權文件時選擇AdHoc,選擇App Id和UDID;
- 只有選中的UDID對應的設備才可能安裝上通過該授權文件制做的程序。
3、Keychain(開發密鑰)
- 安裝證書成功的情況下證書下都會生成Keychain,上面提到的證書副本就是通過配置證書的電腦導出Keychain(就是.p12文件)安裝到其他機子上,讓其他機子得到證書對應的權限。
- Developer Certification就可以制做副本Keychain分發到其他電腦上安裝,使其可以進行真機測試。
- 注意:Distribution Certification只有配置證書的電腦才可使用,因此即使導出導出Keychain安裝到其他電腦上,其他電腦也不可能具有證書的權限。
- 上面的證書基礎知識可以看到開發者證書可以導入到新電腦上用于開發和真機測試,發布證書不可以導入新電腦用于App發布。所以問題出現了那以后版本迭代更新怎么辦?
- 針對問題1:
- 通過導入開發者證書、密鑰和開發授權文件(導入測試機)可以實現用新的電腦在真機上開發和測試,
- 其實這個方法解決的問題應該是如何在不想讓別人知道自己開發者賬號的前提下讓多臺mac機同時可以開發在真機上測試的App;
- 假設現在你知道開發者賬號密碼你完全可以通過你的開發者賬號在自己機器上重新生成開發者證書、開發密鑰,然后通過你信生成的開發者證書和開發授權文件進行真機開發測試。
- 針對問題2:
- 不能通過導入發布證書的方式在新電腦上更新迭代App;那怎樣才能在新mac機上面進行迭代的App發布那,難道必須只能在老機器上面進行迭代發布嗎?
- 毫無疑問肯定是可以在新機器上進行迭代APP的發布的,這中間涉及到蘋果App商店的升級機制:針對同一個開發賬號下面同一個App只要版本號比當前版本號大都會自動提示用戶有新版本。
- 所以你可以在你新mac電腦上面從新創建一個發布證書,通過這個發布證書進行發布。
轉載于:https://www.cnblogs.com/CH520/p/9795232.html