蘋果上架要用的證書和描述文件
蘋果上架時的簽名報錯,多半是三樣東西沒對上:證書、App ID、描述文件。先分清它們,再決定用自動簽名還是手動簽名。
01三樣東西各管什麼
| 文件 | 作用 | 上架時用哪一個 |
|---|---|---|
| 證書 | 證明這個包是你的開發者帳號籤的 | 發給 App Store 用 Distribution(發布)證書 |
| App ID | 應用的唯一標識,後綴就是 Bundle ID | 和 Xcode、App Store Connect 裡的包名必須相同 |
| 描述文件 | 把證書、App ID 和分發方式綁在一起 | 上架用 App Store 類型,不是 Ad Hoc |
Bundle ID 一旦用於上架就不要改。推送、登錄、內購等能力開在這個 App ID 上,和第三方 SDK 也綁在這個包名上。
02開發和發布不要混用
- 開發證書:裝到自己的測試設備上調試,不能拿去提交 App Store。
- 發布證書:用來歸檔並上傳。用它打出來的包不能直接裝到手機上,這是正常的。
- Ad Hoc 描述文件:裝給最多 100 臺登記過 UDID 的設備,用來小範圍測試,不是上架通道。
- 企業描述文件屬於 Enterprise 計劃,不能用來把應用公開裝到任意用戶手機上。
證書一般一年到期。到期後已上架的應用不會立刻從商店消失,但你無法再上傳新構建,直到換發證書並重新簽名。
03推薦路徑:讓 Xcode 管簽名
- Xcode 登錄付費開發者帳號。
- 目標選 Automatically manage signing,Team 選對。
- Bundle ID 與 App Store Connect 裡創建應用時的一致。
- 需要的能力在 Signing & Capabilities 裡打開,保存後 Xcode 會更新描述文件。
- 選 Any iOS Device,Product → Archive,再用 Organizer 或 Transporter 上傳。
團隊裡不要每人各做一套證書。一個人開啟自動簽名,其他人用同一團隊帳號拉取即可。
04必須手動做時
在 Mac 的鑰匙串訪問裡生成證書請求(CSR),把 CSR 上傳到開發者網站換取證書。私鑰留在這臺 Mac 上,不要把私鑰交給網站或聊天記錄。
- 先建 App ID,再選發布證書,再生成 App Store 描述文件。
- 打包工具裡同時選中發布證書和對應的描述文件。
- 報錯先看三處包名是否一致,再看證書有沒有過期、描述文件是不是 Development。
問常見問題
沒有 Mac 能做發布證書嗎?
CSR 和私鑰應在你自己控制的電腦上生成。借用雲端 Mac 可以,但不要把私鑰上傳到來路不明的在線生成網站。
自動簽名和手動簽名能一起開嗎?
同一個目標不要混用。自動簽名開啟時,再手動指定另一份描述文件,很容易籤到錯誤的包。
換了證書,用戶要重裝嗎?
同一團隊、同一 Bundle ID 下更新證書,商店裡的用戶收到的是正常更新,不用卸載。