在 iOS 應用開發過程中,簽名證書和 Provisioning Profile 是確保應用安全性和合法性的關鍵組件。然而,當這些證書或配置文件過期時,開發者可能會遇到編譯或歸檔失敗的問題。本文將詳細介紹如何解決 Xcode 中“iOS Distribution”證書未找到和 Provisioning Profile 過期的問題。
問題描述
當你嘗試在 Xcode 中構建或歸檔 iOS 應用時,可能會遇到以下錯誤信息:
Error (Xcode): No signing certificate "iOS Distribution" found: No "iOS Distribution" signing certificate matching team ID "xxxx" with a private key was found.
Error (Xcode): Provisioning profile "20230621Dev_adHoc" expired on Apr 29, 2025.
這些錯誤表明:
- Xcode 無法找到與團隊 ID 匹配的“iOS Distribution”簽名證書。
- 當前使用的 Provisioning Profile 已過期。
此外,Xcode 還會提示以下內容:
It appears that there was a problem signing your application prior to installation on the device.
Verify that the Bundle Identifier in your project is your signing id in Xcode.
Also try selecting 'Product > Build' to fix the problem.
Encountered error while archiving for device.
解決方案
1. 檢查證書是否過期
首先,檢查你的“iOS Distribution”證書是否過期。證書的有效期通常為一年,過期后需要重新生成。
- 檢查證書有效期
- 打開 鑰匙串訪問(Keychain Access)。
- 在左側欄中選擇“登錄”和“我的證書”。
- 查找“iOS Distribution”證書,雙擊證書查看其詳細信息,確認證書是否已過期。
如果證書已過期,需要重新生成證書。
2. 重新生成證書
重新生成“iOS Distribution”證書的步驟如下:
-
登錄 Apple Developer 賬戶
- 打開瀏覽器,訪問 Apple Developer。
- 使用你的 Apple ID 登錄。
-
進入證書管理頁面
- 在頂部菜單欄中選擇“證書、ID 和配置文件”(Certificates, Identifiers & Profiles)。
-
創建新的證書
- 在左側菜單中選擇“證書”(Certificates)。
- 點擊“+”按鈕,添加一個新的證書。
- 選擇“iOS Distribution”證書類型,然后點擊“繼續”(Continue)。
-
生成證書請求
- 按照提示在你的 Mac 上生成一個證書簽名請求(CSR)文件。
- 打開“鑰匙串訪問”,選擇“證書助理 > 從證書頒發機構請求證書”。
- 填寫你的電子郵件地址和用戶 ID,選擇“存儲在磁盤上”,然后點擊“繼續”。
- 保存 CSR 文件到本地。
-
上傳 CSR 文件
- 返回 Apple Developer 網站,上傳剛才生成的 CSR 文件。
- 點擊“繼續”并等待證書生成。
-
下載并安裝證書
- 證書生成完成后,下載證書文件(
.cer
格式)。 - 雙擊下載的證書文件,將其安裝到鑰匙串中。
- 證書生成完成后,下載證書文件(
-
驗證證書
- 再次打開“鑰匙串訪問”,確認新的“iOS Distribution”證書已安裝,并且包含私鑰。
3. 更新 Provisioning Profile
如果 Provisioning Profile 已過期,也需要更新。
-
登錄 Apple Developer 賬戶
- 訪問 Apple Developer,使用你的 Apple ID 登錄。
-
進入配置文件管理頁面
- 在頂部菜單欄中選擇“證書、ID 和配置文件”(Certificates, Identifiers & Profiles)。
- 在左側菜單中選擇“配置文件”(Provisioning Profiles)。
-
編輯過期的配置文件
- 找到過期的 Provisioning Profile(例如“20230621Dev_adHoc”)。
- 點擊“編輯”(Edit)按鈕。
-
重新生成配置文件
- 點擊“生成”(Generate)按鈕,重新生成新的配置文件。
- 下載新的配置文件到本地。
-
安裝新的配置文件
- 雙擊下載的配置文件,Xcode 會自動將其添加到項目中。
-
清理舊的配置文件
- 打開終端,運行以下命令清理舊的配置文件:
rm -rf ~/Library/MobileDevice/Provisioning\ Profiles/
- 重新構建項目,Xcode 會自動下載新的配置文件。
- 打開終端,運行以下命令清理舊的配置文件:
4. 驗證項目設置
在 Xcode 中,確保項目的簽名設置正確:
-
打開項目
- 打開 Xcode,選擇你的項目。
- 點擊項目的名稱,進入“Targets > Signing & Capabilities”選項卡。
-
手動管理簽名
- 取消自動管理簽名(關閉“Automatically manage signing”)。
- 手動選擇新安裝的“iOS Distribution”證書和新的 Provisioning Profile。
-
清理并構建項目
- 點擊頂部菜單欄的“Product > Clean Build Folder”清理項目。
- 然后選擇“Product > Build”重新構建項目。
總結
通過以上步驟,你可以解決 Xcode 中“iOS Distribution”證書未找到和 Provisioning Profile 過期的問題。關鍵步驟包括:
- 檢查證書是否過期,并重新生成證書。
- 更新過期的 Provisioning Profile。
- 確保 Xcode 項目中的簽名設置正確。
如果問題仍未解決,建議檢查 Xcode 和 macOS 系統是否為最新版本,并嘗試重啟 Xcode 和電腦。希望這些方法能幫助你順利解決簽名問題,繼續你的開發工作。