IPA 重签名
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_9a66f56b/ipa-resign。
技能介绍
要解决什么问题
在 iOS 内测或企业分发场景里,你往往拿到的是已签名的 IPA,但需要换成自己的 AdHoc / Enterprise / Development 证书与 .mobileprovision,同时改 Bundle Identifier、桌面显示名,有时还要换图标或决定是否保留 App Extension。手工用 Xcode、codesign 和解包脚本容易漏签嵌套二进制、entitlements 与描述文件不一致,装得上却闪退。
技能如何工作
该技能把重签流程收敛成可重复的操作:先可用 --setup 做环境检查(本机 codesigning 证书列表、描述文件状态与快速指引),再选两种方式之一:
- 命令行参数:适合临时任务,显式传入
--ipa、--cert、--provision、--bundle-id、--app-name等 - 配置文件:把常用证书与描述文件路径写入配置目录,日常只需简化命令
核心参数覆盖输出路径(默认 ~/Desktop/_resigned.ipa)、是否剥离 Extension(默认 --strip-extensions 开启,需保留时用 --keep-extensions)、调试用的 --no-clean 与 --verbose。签名类型与描述文件需匹配:AdHoc、Enterprise、App Store、Development 各自对应不同 provision。
成功后得到新 IPA,可通过 Xcode Devices 拖拽、idevicedeploy 或第三方助手安装。
适用边界与注意点
- 证书名称必须与
security find-identity -v -p codesigning输出完全一致 - 描述文件的设备列表或 TeamIdentifier 需与证书一致,类型不匹配会签失败或无法安装
- 闪退时检查 entitlements、Bundle ID 是否与描述文件一致;Extension 相关问题可尝试
--keep-extensions --icon传入 PNG 对部分 App 无效:图标若在Assets.car中编译,需另用工具改资源包
使用场景
- 企业或团队内测证书轮换时,在 Mac 上对现有 IPA 更换 AdHoc 证书与 `.mobileprovision` 后发给登记设备。
- 收到外包或合作方交付的 IPA,需修改 Bundle Identifier、App 显示名并套用自己的签名再侧载安装。
- 安装后启动即闪退,需要按技能指引检查 entitlements,并尝试 `--keep-extensions` 重签含扩展的包体。
- 第一次在本机做重签前,运行环境检查确认 `codesigning` 证书名称与描述文件类型(Development/Enterprise 等)是否匹配。
适合人员
- 负责 iOS 构建与内测渠道的发布工程师,需要在不改源码的情况下换证、改 Bundle ID 产出可安装包。
- 维护企业侧载或内部应用商店的企业移动管理员,要用 Enterprise 描述文件重签业务 IPA 并分发给员工设备。
- 在真机上回归主 App 与 Extension 行为的 iOS 测试工程师,需要稳定产出默认路径或指定输出的 resigned IPA。
- 手头只有已打包 IPA、需挂在自己 Development 证书与描述文件上真机调试的独立 iOS 开发者。