Xcode 提交APP时遇到 “has one iOS Distribution certificate but its private key is not installed”...

安装Apple发布版证书
解决Apple开发者证书安装问题,详细步骤包括从Apple开发后台下载发布版证书.cer文件并安装到本地,适用于需要配置iOS应用发布证书的开发者。

解决办法:
登录Apple开发证书后台,把发布版证书.cer文件下载到本地,双击安装即可。若还没有设置发布证书文件,则创建一个后下载。

Ref: https://blog.youkuaiyun.com/dingqk/article/details/79007072

转载于:https://www.cnblogs.com/open-coder/p/10518756.html

这个错误信息: > **"Your account already has an Apple Development signing certificate for this machine, but its private key is not installed in your keychain. Xcode can create a new one after revoking your existing certificate."** 是 iOS 开发中常见的代码签名(Code Signing)问题。它的核心意思是: - Apple Developer 账户中已经为你的开发者身份(如 `iPhone Developer: Your Name`)创建了一个开发证书(Development Certificate)。 - 但当前这台 Mac 的 **钥匙串(Keychain)中缺少对应的私钥(Private Key)**,因此无法使用该证书进行签名。 - 私钥通常是在你最初生成 CSR(Certificate Signing Request)由系统自动生成的,如果换了电脑、重装了系统或钥匙串损坏,就会丢失。 --- ### ✅ 解决方案 你需要让 Xcode **重新生成一个新的开发证书**,并更新到 Apple Developer 账户。以下是详细步骤: --- #### ✅ 方法一:让 Xcode 自动处理(推荐新手) 1. 打开 Xcode 2. 进入菜单:**Xcode → Settings (Preferences) → Accounts** 3. 选择你的 Apple ID,点击右下角的 **Manage Certificates…** 4. 点击左下角的 **+** 号,选择 **Apple Development** 5. Xcode 会提示: > "The private key for this certificate is not present on this machine. Would you like to create a new one?" 6. 点击 **Create**,Xcode 会: - 在本地生成新的密钥对(公钥 + 私钥) - 向 Apple 发起新证书请求 - **自动吊销旧证书**(⚠️ 注意:旧证书将失效,影响其他机器) - 下载并安装新证书到钥匙串 ✅ 完成后即可正常编译和运行 App。 > 🔐 提示:建议导出 `.p12` 文件备份证书和私钥,以便在其他机器上恢复。 --- #### ✅ 方法二:手动通过 Apple Developer Portal 操作(适合团队或 CI/CD) 如果你不想自动吊销旧证书(比如别人还在用),可以手动操作: ##### 步骤 1:在本机生成新的 CSR 文件 1. 打开 **钥匙串访问(Keychain Access)** 2. 菜单栏:**钥匙串访问 → 证书助理 → 从证书颁发机构请求证书…** 3. 填写邮箱、名称,选择“存储到磁盘”,保存为 `.certSigningRequest` 文件 ##### 步骤 2:登录 [Apple Developer Portal](https://developer.apple.com/account/) 1. 进入 **Certificates, Identifiers & Profiles** 2. 在 **Certificates** 页面点击 **+** 创建新证书 3. 类型选择:**Apple Development (iOS, macOS, etc.)** 4. 上传你刚刚生成的 `.certSigningRequest` 文件 5. 下载生成的 `.cer` 证书文件 ##### 步骤 3:安装证书到钥匙串 双击下载的 `.cer` 文件,它会被自动添加到 **钥匙串访问** 中,并与你之前生成的私钥配对。 > ✅ 成功后你会看到:证书图标旁有小三角,展开能看到“专用密钥” ##### 步骤 4:在 Xcode 中使用 回到 Xcode,clean 并重新 build,签名应恢复正常。 --- #### ✅ 方法三:从其他机器导出证书 + 私钥(迁移开发环境) 如果你在另一台 Mac 上有有效的证书和私钥,可以导出 `.p12` 文件迁移: ##### 在原机器上导出: 1. 打开 **钥匙串访问** 2. 找到你的开发证书(如 `iPhone Developer: XXX`) 3. 展开它,你会看到下面跟着一个私钥(通常是你的用户名或“RSA private key”) 4. 选中证书和私钥,右键 → **导出** 5. 保存为 `.p12` 文件,设置密码保护 ##### 在新机器上导入: 1. 将 `.p12` 文件拷贝到新 Mac 2. 双击安装,输入密码 3. 证书和私钥将进入钥匙串,Xcode 即可正常使用 > 💡 提示:`.p12` 是敏感文件,请勿提交到 Git 或公开分享。 --- ### ⚠️ 注意事项 | 项目 | 说明 | |------|------| | 吊销旧证书的影响 | 所有依赖该证书签名的开发包将无法安装(7天有效期限制) | | 团队协作 | 如果你在团队中,不要随意吊销证书,应协调统一管理 | | CI/CD 环境 | 推荐使用自动化工具(如 Fastlane)管理证书和 Provisioning Profile | | 备份建议 | 每次创建新证书后,导出 `.p12` 备份到安全位置 | --- ### 🧰 验证是否解决 在终端运行以下命令检查钥匙串中的开发证书: ```bash security find-certificate -c "iPhone Developer" -p | openssl x509 -fingerprint -SHA1 -noout ``` 如果有输出指纹(Fingerprint),说明证书和私钥都存在。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值