新闻详情

新闻详情

首页 / 资讯中心 / 详情

fastlane 如何用 cert 和 sigh 自动生成 iOS 代码签名证书与 Provisioning Profile

发布时间:2026/9/11 5:55:14来源:尧图网络
fastlane 如何用 cert 和 sigh 自动生成 iOS 代码签名证书与 Provisioning Profile
fastlane 如何用 cert 和 sigh 自动生成 iOS 代码签名证书与 Provisioning Profile【免费下载链接】fastlane The easiest way to automate building and releasing your iOS and Android apps项目地址: https://gitcode.com/GitHub_Trending/fa/fastlane当你要把 iOS 应用的构建放进 CI 或自动化脚本时代码签名证书和 Provisioning Profile 是绕不开的两个文件证书过期、Profile 失效都会让打包直接失败。fastlane 提供cert和sigh两个动作来分别解决这两件事——cert负责创建并安装代码签名证书sigh负责创建、续期、下载并修复 Provisioning Profile。本文说明如何用这两个动作完成“证书 Profile”的自动化生成以及每一步如何确认结果。适用前提拥有 Apple Developer Portal开发者门户账号证书创建需要 Team Admin 权限才能创建 Distribution 证书建议运行环境为 macOScert会在 macOS 上把证书导入 Keychain 并做本地安装校验非 macOS 系统上这两步会被跳过keychain_path、keychain_password等参数也不支持登录方式二选一Apple ID 账号密码fastlane 的 CredentialsManager 负责管理或 App Store Connect API Key。准备配置 Appfilecert和sigh都优先从Appfile读取应用的 bundle identifier 与 Apple ID无需每次都传参数。仓库中的 Appfile 模板AppfileTemplate展示了最小配置app_identifier(com.example.app) # 你的 App bundle identifier apple_id(youexample.com) # Apple Developer Portal 用户名如果在多个团队之间切换还可以配置 team_id / team_name对应cert、sigh的team_id、team_name参数。确认某个动作支持哪些参数和环境变量可以直接运行fastlane action cert fastlane action sigh第一步用 cert 生成并安装签名证书最基本的命令是fastlane certsigh/cert的文档明确指出在 fastlane 中cert是get_certificates的别名sigh是get_provisioning_profile的别名见 get_certificates 文档、get_provisioning_profile 文档。cert的执行逻辑由 Runner 实现 决定是先检查本地机器上是否已安装可用的签名证书已存在则直接复用只有在需要新建证书时才会创建新的私钥、创建证书签名请求CSR、向 Apple 请求生成证书下载并安装到本地 Keychain。如果 Appfile 中没写apple_id可以在命令行直接传入 Apple IDfastlane cert -u certexample.com常用参数均可通过fastlane action cert查看也支持对应环境变量如CERT_DEVELOPMENT、CERT_OUTPUT_PATHdevelopment: true创建 Development 证书而不是默认的 Distribution 证书generate_apple_certs创建 Xcode 11 及以上使用的 Apple Development / Apple Distribution 证书macOS Xcode 11 环境下默认为truetype:指定特殊证书类型取值mac_installer_distribution、developer_id_installer、developer_id_application、developer_id_kextoutput_path-o证书和私钥文件的保存目录默认.keychain_path、keychain_password自定义 Keychain 及其密码仅 macOS。执行后如何确认成功在 macOS 上终端会输出 “Verifying the certificate is properly installed locally...”成功后显示Successfully installed certificate 证书ID如果在 Keychain 中找不到新证书会直接报错退出证书文件被写入output_path默认为当前目录同时在 lane 中产生两个共享值CERT_FILE_PATH证书文件路径和CERT_CERTIFICATE_ID证书 ID非 macOS 环境会提示 “Skipping verifying certificates...”只生成证书文件而不做本地安装。一个需要知道的边界cert永远不会撤销你已有的证书。当证书数量达到 Apple 的上限时cert会抛出异常需要你先在开发者门户手动撤销旧证书才能腾出名额。第二步用 sigh 生成 Provisioning Profilesigh默认针对 App Store 类型执行“创建、修复、下载”Profile 的完整流程fastlane sigh指定 bundle identifier 和 Apple ID 的完整写法fastlane sigh -a com.example.app -u youexample.com按目标用途选择 Profile 类型三类参数互斥不能同时开启fastlane sigh # 默认 App Store fastlane sigh --adhoc # Ad Hoc fastlane sigh --development # Development与cert配合时最关键的几个参数-ooutput_pathProfile 保存目录默认当前目录。例如fastlane sigh -o ~/Certificates/force-f无论现有 Profile 状态如何都重新生成得到最长有效期的 Profile并且会把所有可用设备加进 Profile-qfilename指定生成的 Profile 文件名必须以.mobileprovision结尾例如fastlane sigh -a com.example.app -u youexample.com -q myProfile.mobileprovision--skip_install只生成 Profile 文件不安装到本地-ccert_owner_name指定新 Profile 使用哪张证书例如fastlane sigh -c SunApps GmbH。关于证书选择有一条明确的联动规则如果同一个 fastlane lane 中先运行了certsigh会自动使用cert刚生成的签名证书cert会把证书 ID 写入SIGH_CERTIFICATE_ID供sigh使用不需要再用-c手动指定。执行成功后Profile 文件.mobileprovision落在output_path指定的目录lane 中可以得到SIGH_PROFILE_PATH本次 Profile 的绝对路径、SIGH_UUID、SIGH_NAME等共享值供后续动作如构建、上传直接使用。组合到 Fastfile一条 lane 完成证书和 Profilecert和sigh官方推荐的用法是在同一个 lane 中串联。在Fastfile中写入lane :beta do cert sigh(force: true) end然后用fastlane beta触发。这里force: true的作用是每次都重新生成 Provisioning Profile保证sigh始终使用本地机器上刚由cert安装的那张签名证书。已知限制与注意事项文档明确建议对于大多数项目更推荐用 fastlane 的match方案统一生成和维护证书与 Profile直接组合certsigh适合想完全掌控签名流程、并熟悉代码签名的场景cert无法从 Apple 开发者门户下载“已有证书的私钥”——私钥永远只存在于当初创建证书的机器上这也是sigh依赖本地 Keychain 中证书的前提sigh使用环境变量SIGH_CERTIFICATE或-c指定证书时也可以传证书名称或过期日期如果sigh提示找不到 App Identifier说明开发者门户里还没有这个 bundle id需要先创建应用标识文档指出的对应动作是producesigh不会触碰 Xcode 自己管理的 Profile它只管理自己生成和下载的那一套。完成fastlane beta或分别运行fastlane cert和fastlane sigh后你的工作目录中应能看到新生成的.cer证书文件与.mobileprovisionProfile 文件终端出现 “Successfully installed certificate” 即为整条链路跑通的标志。【免费下载链接】fastlane The easiest way to automate building and releasing your iOS and Android apps项目地址: https://gitcode.com/GitHub_Trending/fa/fastlane创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

V 编译器已知编译缺陷的回归跟踪机制:known_errors/testdata 目录设计与使用指南 2026/9/11 6:37:19

V 编译器已知编译缺陷的回归跟踪机制:known_errors/testdata 目录设计与使用指南

V 编译器已知编译缺陷的回归跟踪机制&#xff1a;known_errors/testdata 目录设计与使用指南 【免费下载链接】v Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automati…

阅读更多 →
G-Helper 轻量控制工具:华硕笔记本卸载 Armoury Crate 后只留一个 exe 2026/9/11 6:37:19

G-Helper 轻量控制工具:华硕笔记本卸载 Armoury Crate 后只留一个 exe

G-Helper 轻量控制工具&#xff1a;华硕笔记本卸载 Armoury Crate 后只留一个 exe 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobo…

阅读更多 →
MyBatis-Plus入门指南:提升CRUD效率的实战技巧 2026/9/11 6:37:19

MyBatis-Plus入门指南:提升CRUD效率的实战技巧

1. MyBatis-Plus入门&#xff1a;为什么选择它而不是原生MyBatis我第一次接触MyBatis-Plus是在2018年接手一个电商后台项目时。当时团队正在为要不要引入这个"增强工具"争论不休——有人担心增加学习成本&#xff0c;有人认为会带来维护风险。但实际使用后&#xff0…

阅读更多 →
Rust 任务(Tasks)系统深度解析:基于 Comprehensive Rust 掌握 Tokio 轻量级线程与 async 块并发模型 2026/9/11 6:37:19

Rust 任务(Tasks)系统深度解析:基于 Comprehensive Rust 掌握 Tokio 轻量级线程与 async 块并发模型

Rust 任务&#xff08;Tasks&#xff09;系统深度解析&#xff1a;基于 Comprehensive Rust 掌握 Tokio 轻量级线程与 async 块并发模型 【免费下载链接】comprehensive-rust This is the Rust course used by the Android team at Google. It provides you the material to qu…

阅读更多 →
Homepage 集成 Trilium 笔记服务:基于 ETAPI 的监控 Widget 配置指南 2026/9/11 6:37:19

Homepage 集成 Trilium 笔记服务:基于 ETAPI 的监控 Widget 配置指南

Homepage 集成 Trilium 笔记服务&#xff1a;基于 ETAPI 的监控 Widget 配置指南 【免费下载链接】homepage A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations. 项目地址: https://gitcode.com/GitHub_Tren…

阅读更多 →
Android数据备份全攻略:一键解决手机文件丢失难题 2026/9/11 6:34:19

Android数据备份全攻略:一键解决手机文件丢失难题

1. Android手机数据备份的必要性与挑战 作为一名经历过多次数据丢失惨案的Android老用户&#xff0c;我深刻体会到定期备份的重要性。上周刚有位同事因为手机进水&#xff0c;所有工作资料和孩子的成长照片瞬间消失——这种痛只有经历过的人才懂。Android系统的开放性带来了丰富…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞