2010年9月12日 星期日

如何自製憑證

在 iPhone 開發程式一般都會先在 iPhone SDK 所提供的 Simulator 下開發,
可是只有 Simulator 是不夠的, 我想每個人都會想把自己寫的應用程式放到 device
(也就是自己的 iPhone 手機) 上去執行,在這過程中, 發現到新版本的 Xcode &
iPhone SDK 在編譯 target device 版本時, 就會需要憑證來作認證, 若沒有適
當的憑證, 就會遇到如下的錯誤訊息 “Code Signing Identity ‘iPhone Developer’
does not match any valid, non-expired, code-signing certificate in
your keychain” 一般的方式就是去 Apple 官網申請帳號, 並繳交年費 99 USD
纔會獲得一個正式的憑證以供開發者開發, 可是就一般的開發者而言, 這步驟有點擾人,
一來不想要多花錢, 二來又不確定是否自己會走上開發 App Store 上的應用程式這條路,
所以不太想去花這筆錢, 有鑑於此, 我就 google 了一下,發現到的確有很多人在討論如
何不透過官方憑證來達到編譯 target device , 由於時間上的差異, 以及開發工具版
本的不同,  所以自己也親自將這些方式都一一驗證, 以及精簡, 就以我的開發環境來說
iPhone SDK 3.1.2
Xcode 3.2
只會需要三個步驟就可以達到所需要的效果 , 做完下面三個步驟索要修改的東西之後,
應該在 xcode 編譯時, 就不會在出現憑證錯誤的訊息了

1. 修改"/Developer/Platforms/iPhoneOS.platform/Info.plist"文件,默认是用Property
    List Editor打开,然后添加:
    1.1. PROVISIONING_PROFILE_ALLOWED = NO
    1.2. PROVISIONING_PROFILE_REQUIRED = NO
    1.3. 把其中的三处XCiPhoneOSCodeSignContext替换成XCCodeSignContext保存即可.


2. 自製憑證:
應用程式 | 工具程式 | 鑰匙圈存取


憑證名稱一定要是 “iPhone Developer”, 然後直接一直點選”繼續”



中間過程中會有需要你選擇加密方式, 選擇如圖片上所示 RSA


一直按"繼續"直到完成憑證製作完成為止.

3. 在 iPhone Project 裡面設定 "Code Signing"
   在 Project 選單里選 "Get Info"

   在 Build Tag 裡面找到如下的欄位, 並選擇剛剛所產生的憑證即可


上述這樣設定之後, 應該可就可以將所寫好的 app 直接安裝到 Device 中.
[Note]
此方是是在 iPhone SDK 3.1.2 + Xcode 3.2 環境下測試驗證是可行的, 並未在 iOS4
測試, 因為筆者在 iOS4 時代已經跟 apple 花錢加入 iPhone Developer 了.





1 則留言:

  1. iPhone SDK 4.1 + Xcode 3.2.5 64bit 出現如下錯誤
    Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain

    回覆刪除