iOS开发进阶(二十四):一文读懂iOS发布证书,描述文件到期后,在工程中如何进行替换

文章目录

一、前言

替换过期的 iOS 发布证书和描述文件,核心思路是:先在苹果开发者网站生成新的,再下载到 Mac,最后在 Xcode 项目中完成配置。

整个过程可以简单分为三步:

二、证书备份与清理

准备工作 (在开始前,请务必完成此步)

· 备份旧证书 (.p12 文件):在 Mac 的"钥匙串访问 "中找到旧证书,右键导出为 .p12 格式。这是为了防止以后换电脑或私钥丢失后无法更新应用。

· 清理过期证书:在"钥匙串访问"里,检查并手动删除所有已过期的证书。

注意⚠️:证书的有效期通常为1年,发布证书为3年,过期必须更换;Provisioning Profile有效期通常是1年。

三、证书与描述文件替换

步骤一:更新发布证书 (iOS Distribution Certificate)

  1. 登录并进入管理页:前往 Apple Developer 登录,进入 Certificates, Identifiers & Profiles。
  2. 新建证书:点击 Certificates -> + 号 -> 选择 Apple Distribution 或 iOS Distribution (App Store)。
  3. 生成CSR文件:按照指引,在本地 Mac 上通过"钥匙串访问" -> "证书助理" -> "从证书颁发机构请求证书"生成一个 .certSigningRequest (CSR) 文件。
  4. 上传并下载:上传刚生成的 CSR 文件,生成新的发布证书(.cer 格式)并下载。
  5. 安装:双击下载的 .cer 文件,它会自动安装到"钥匙串访问"中。

步骤二:更新描述文件 (Provisioning Profile)

  1. 进入管理页:在开发者网站的 Certificates, Identifiers & Profiles 中,点击左侧的 Profiles。
  2. 编辑/新建:找到对应过期文件,点击 Edit;或者直接点击 + 号新建一个新的。
  3. 重新生成:在编辑页面重新选择 App ID 和第一步刚创建好的新发布证书。
  4. 下载并安装:生成完成后下载新的 .mobileprovision 文件,然后双击即可自动安装到 Xcode。

步骤三:在 Xcode 项目中替换

· 方法一:自动管理签名(推荐)

在 Xcode 中打开项目,找到 Signing & Capabilities 选项卡,确保勾选上 Automatically manage signing。然后在 Team 下拉菜单中重新选择你的开发者账号,Xcode 会自动处理证书同步。

· 方法二:手动管理签名

  1. Signing & Capabilities 中 取消勾选 Automatically manage signing。
  2. Provisioning Profile 下拉菜单中,选择你刚下载并安装的最新描述文件。
  3. Signing Certificate 中,选择你刚安装的新发布证书。

步骤四:验证与清理

· 验证签名:查看 Signing & Capabilities 界面,确保没有报错。

· 清理缓存:如果签名验证通过但编译报错,建议清理一下 Xcode 的缓存。在菜单栏选择 Product -> Clean Build Folder。如果问题依旧,可以手动删除 Derived Data 文件夹。

替换证书和描述文件后,通常需要重新打包应用并提交审核,才能为用户提供更新版本。

相关推荐
SameX12 小时前
iOS 独立开发者转鸿蒙:我把足迹地图 App 迁移到 ArkTS 的全过程
ios
sakiko_1 天前
Swift学习笔记42-SwiftUI的属性包装器(讲解+面试)
笔记·学习·ios·swiftui·swift
Patrick_Wilson1 天前
iOS Safari 按钮点击无响应问题修复指南
前端·ios·safari
随遇丿而安1 天前
第 3 周:UIButton 点了没反应,因为它默认就没有按压态
ios
思盛iOS签名上架2 天前
App苹果签名有什么作用?
macos·ios·cocoa
CocoaKier2 天前
Facebook广告后台收不到Adjust回传数据,我们排查了一个月终于找到了根因
ios·facebook
FairGuard手游加固3 天前
iOS 游戏加固技术解析:代码混淆、资源加密、内存保护与重签名检测
安全·游戏·macos·unity·ios·objective-c
思盛iOS签名上架3 天前
iOS企业签名原理是什么?
macos·ios·cocoa
Daniel_Coder3 天前
我用 SwiftUI + GRDB 做了一个「按时吃药·服药提醒」App
ios·swiftui·swift·widgetkit