2013年2月5日 星期二

p12, mobileprovision 以及更換開發帳號的方法

使用 keychain 刪除憑證時

偶爾會一起刪除掉金鑰,造成 proviosning 無效需要重新處理(掯....

後來發現正確作法是打開 keychain,

進入鑰匙

然後選擇鑰匙下面的憑證一一刪除..

喵的一堆鑰匙就這樣失去效用..

然後 keychain 的 cache 很嚴重

做完更新後,要確認效果最好是關閉(cmd + Q)後重新開啟

為何要刪除憑證?

因為 Xcode 經常會錯亂..尤其在 certificate 使用相同名字(同一家公司的不同帳號)時

更新 certificate 後

development 的 provisioning 檔案可以重新產生

distribution provisioning profile 則只能砍掉重新建立

Code Sign 同名錯誤

Code Sign error: Certificate identity 'iPhone Distribution: xxxxxx’ appears more than once in the keychain. The codesign tool requires there only be one.

先到 keychain 裡面,挑選 key, 把不要用的 certificate 刪除(注意...)

然後選擇 don’t code sign 洗記憶,clean

再換回正常的 provisioning profile 就OK了

理論上是這樣啦..不過 keychain 和 Xcode 的 organiser 的記憶時間有點沒規則

可能需要多做幾次

什麼是 p12 檔案

.p12 檔案是憑證+金鑰匯出的結果檔案

在其他電腦上輸入密碼開啟並匯入後,該台電腦上就可以使用該憑證

以及以該憑證建立的 provisioning 檔案

這也是之前用來讓多組開發人員可以進行實機測試的主要方法:將金鑰輸出成 p12 後匯入其他電腦

可參考 http://itouchs.blogspot.tw/2011/08/idevice-app.html 的說明

4. 將 private key 轉成 .p12 檔, 寄給需要利用 Certificate 一同開發 App 的人.

若要使用此方法,建議為 dev 和 dis certificate 建立不同的 CSR (也就是會產生兩組不同的金鑰)

方便管理(開發組使用 dev p12 匯入開發證書即可)

開發推播時,常會使用同一台電腦

不過在正式環境,通常會使用不同電腦

因此有推播功能時,要申請 推播用的 SSL 檔案,可建立伺服器自己的 CSR 檔案,上傳到 apple 推播取得對應的 SSL 檔案後,轉送到推播伺服器

當然使用同一台電腦,取得SSL憑證後匯出成 p12 也不是不行

什麼是 mobielprovision

從網站下載的 mobielprovision

包含了 appID, certificate (dev/dis) 以及可應用機器(特定幾台或無限制)等設定的檔案

可用於簽署 app ID 相符的 app (所以 wildcard 可用於所有 app)

mobielprovision 檔案

多帳號下開發的建議配置

可能的話,使用 member center 使用一個帳號負責開發作業(各帳號邀請同一帳號A,帳號A擁有不同開發帳號下的 dev certificate cer_A,同時也可以申請使用了 cer_A 的 provisioning profile 作為開發測試用

或者只是使用 wildcard 其實也可以

需要佈署 distribution 時,下載對應帳號的 distribution certificate 以及 provisioning profile

佈署、上傳完畢後,就可以到 keychain 中刪除對應的 certificate 避免錯亂

iOS Team Provisioning Profile: Wildcard 應該是使用對應的輔助帳號,在 Xcode 下的 organiser refresh 時自動更新?

沒有留言: