蘋果開發基礎知識

趙彥軍發表於2015-06-08

App ID(應用ID)

App ID是識別不同應用程式的唯一標示符。每個app都需要一個App ID或者app標識。

目前有兩種型別的App標識:一個是精確的App ID(explicit App ID),一個是萬用字元App ID(wildcard App ID)。

使用萬用字元的App ID可以用來構建和安裝多個程式。儘管萬用字元App ID非常方便,但是一個精確的App ID也是需要的,

尤其是當App使用iCloud 或者使用其他iOS功能的時候,比如Game Center、Push Notifications或者IAP。

如果你不確定什麼樣的App ID適合你的專案,我推薦你讀下蘋果關於這一主題的文件:Technical Note QA1713。

Distribution Certificate(釋出證書)

iOS應用都有一個安全證書用於驗證開發者身份和簽名。為了可以向App Store提交app,你需要建立一個iOS provisioning profile 。

首先需要建立一個distribution certificate(釋出證書),過程類似於建立一個development certificate(開發證書)。

如果你已經在實體裝置上測試你的App,那麼你對建立development certificate就已經很熟悉了。

如果對此不熟悉,我建議你讀下蘋果關於signing certificates和provisioning profiles的詳細指導。

Provisioning Profile(配置檔案)

一旦你建立了App ID和distribution certificate,你可以建立一個iOS provisioning profile以方便在App Store中銷售你的App。

不過,你不能使用和ad hoc distribution相同的provisioning profile。

你需要為App Store分銷建立一個單獨的provisioning profile,如果你使用萬用字元App ID,那麼你的多個app就可以使用相同的provisioning profile。

Build Settings(生成設定)

配置App ID、distribution certificate 和provisioning profile已經完成,是時候配置Xcode中target的build settings了。

在Xcode Project Navigator的targets列表中選擇一個target,開啟頂部的Build Settings選項,然後更新一下Code Signing來跟之前建立的distribution provisioning profile相匹配。

最近新增的provisioning profiles有時候不會立馬就在build settings的Code Signing中看到,重啟一下Xcode就可以解決這個問題。

Deployment Target(部署目標)

非常有必要說下deployment target,Xcode中每個target都有一個deployment target,它可以指出app可以執行的最小版本。

不過,一旦應用在App Store中生效,再去修改deployment target,你要考慮到一定後果。

如果你在更新app的時候提高了deployment target,但是已經購買應用的使用者並沒有遇到新的deployment target,那麼應用就不能在使用者的移動裝置上執行。

如果使用者通過iTunes (不是裝置)下載了一個更新過的app,然後替代了裝置上原先的版本,最後卻發現新版本不能在裝置上執行,這確實是個問題。

證書主要分為兩類

Development和Production,

Development證書用來開發和除錯應用程式,

Production主要用來分發應用程式(根據證書種類有不同作用),下面是證書的分類資訊:(括號內為證書有效期)

  • Development
    • App Development (1年):用來開發和真機除錯應用程式。
    • Push Development (1年):用來除錯Apple Push Notification
  • Production
    • In-House and Ad Hoc (3年):用來發布In-House和AdHoc的應用程式。

    • App Store :用來發布提交App Store的應用程式。

    • MDM CSR
    • Push Production (1年):用來在釋出版本中使用Apple Push Notification。
    • Pass Type ID Certificate:用於通行證類證書
    • Website Push ID Certificate

有一些型別的證書我沒有使用過,所以也不瞭解具體的作用。

 

證書

 1)Developer Certification(開發證書)

 2)Distribution Certification(釋出證書)

 

授權檔案

1)Developer Provisioning Profile(開發授權檔案)

2)Distribution Provisioning Profile(釋出授權檔案)