如何重新签名 IPA 文件以进行 Sideloading

为什么需要对 IPA 文件重新签名

每一个能在 iPhone 上运行的应用都必须使用有效的 Apple 证书进行代码签名。当你从网上下载一个 IPA 文件,或者从 Xcode 导出它时,它携带的是原始开发者的签名。在你把它安装到自己的设备上之前,这个签名需要替换成与你的 iPhone 所信任的证书相关联的签名。这个过程叫做重签名(resign),对于任何认真对待 iOS 爱好者来说,这都是一项基础技能。

重签名并不是为了绕过安全机制,而是关于信任的转移。Apple 的安全模型要求 iOS 上运行的每一段代码都要由一个已知身份进行担保。当你重签一个 IPA 时,你实际上是在用自己的开发者身份,或者借助像 Scarlet iOS 这样的工具所管理的证书,表明”我为这个应用担保”。

如果你对 IPA 文件这个概念还不熟悉,可以先看看我们的指南:了解 IPA 文件:它们是什么以及如何使用。一旦你了解了 IPA 的结构,重签名就会容易理解得多。最后核实时间:2026 年 10 月 27 日,核对依据为 GitHub 上 iOS App Signer 和 zsign 的 README 文档,以及 Apple 的开发者会员页面。

先说风险

  • 重签名改变的是谁来为这个应用担保,而不是应用本身的行为。一个被修改过的 IPA 在签名之后依然是被修改过的,所以请先对 IPA 进行检测。
  • 千万不要把 .p12 证书和它的密码交给某个网站或陌生人。任何拿到这些的人都可以冒充你去签名应用。
  • 使用不同的 Bundle ID 重签名会生成一个独立的应用,不含原有数据。如果要原地更新某个应用,请保持相同的 Bundle ID 和相同的 Apple ID。
  • 使用免费 Apple ID 时,你签名的应用会在 7 天后停止打开。Apple 的会员页面写明,免费的描述文件(provisioning profile)”将在签发后 7 天内到期”。

重签名工具一览

工具 运行平台 签名方式 适用场景
iOS App Signer macOS(需要 Xcode) 你的证书和描述文件 简单的图形界面重签名
AltServer / AltStore Mac 或 Windows 你的 Apple ID 一步完成重签名和安装
Sideloadly Mac 或 Windows 你的 Apple ID 重签名并安装,还可修改 Bundle ID 和应用名称
codesign macOS(Xcode 命令行工具) 你的证书和描述文件 完全掌控,适合脚本化操作
zsign macOS、Linux、Windows、Android、FreeBSD .p12 证书和描述文件 无需 Mac 也能重签名

重签名前需要准备什么

要重签名一个 IPA 文件,你需要准备以下内容:

  • 你想要重签名的 IPA 文件
  • 一台 Mac(用于传统工具)或一台 Windows/Linux 电脑(用于跨平台工具)
  • 一个 Apple ID(免费)或一个 Apple Developer 账号(每年 99 美元,功能更广)
  • 一款重签名工具,比如 iOS App Signer、AltServer,或使用 codesign 的命令行方式
  • 一个包含你设备 UDID 的描述文件(使用免费 Apple ID 时,Xcode 会自动为你创建;详见下文)

此外,当你将 IPA 直接导入 Scarlet iOS 应用时,它会自动完成大部分这类流程。不过了解手动流程能让你掌握更多控制权,并在自动化工具出问题时帮助你排查故障。

方法一:使用 iOS App Signer 重新签名(Mac)

iOS App Signer 是一款免费的开源 macOS 工具,提供图形界面来重新签名 IPA 文件。使用方法如下:

  1. 从其官方 GitHub 仓库下载 iOS App Signer。其 README 说明它“需要安装 Xcode”,支持 ipa、deb、app 和 xcarchive 文件。
  2. 打开 Xcode,通过设置 > 账户(旧版本中为偏好设置)登录你的 Apple ID。这会在你的 Mac 上创建一个本地签名证书。
  3. 获取一个包含你设备的 provisioning profile(描述文件)。使用免费 Apple ID 时,README 中的方法是“通过在 Xcode 中新建一个项目”来创建这些文件:连接 iPhone,创建一个空的应用项目,并让 Xcode 自动管理签名。Apple 的会员页面也确认,对于免费账户,“描述文件直接在 Xcode 中管理”。如果使用付费账户,则可以改为在开发者后台注册设备 UDID 并在那里下载描述文件。我们的指南展示了如何查找 UDID。
  4. 打开 iOS App Signer,选择你的 IPA 文件作为输入。
  5. 从下拉菜单中选择你的签名证书;它会显示为 “Apple Development: Your Name”(旧版证书则为 “iPhone Developer: Your Name”)。
  6. 选择你下载的 provisioning profile。
  7. 如果你想在不覆盖原应用的情况下安装,可以选择性地修改 bundle ID(README 中称为 application ID)或显示名称。参见在同一台 iPhone 上安装同一应用的多个版本。
  8. 点击开始(Start),等待生成重新签名后的 IPA。
  9. 使用 Xcode 的设备与模拟器(Devices and Simulators)窗口,或借助 Apple Configurator 等工具来安装重新签名后的 IPA。

方法 2:使用 AltServer 重新签名

AltServer 是另一种流行的方法,适用于 Mac 和 Windows。它与 AltStore 集成,但也可以用来重新签名任意 IPA 文件:

  1. 在电脑上安装 AltServer,并在 iPhone 上安装 AltStore。
  2. 打开 AltServer,找到 Sideload .IPA 选项。
  3. 选择你的 IPA 文件,并在提示时输入你的 Apple ID 账号信息。
  4. AltServer 会自动完成证书创建、描述文件(provisioning profile)生成、重新签名和安装。

免费 Apple ID 方法的限制在于证书 7 天后过期。以这种方式签名的应用会在一周后停止运行,除非重新签名。付费的 Apple Developer 账号(99 美元/年)可以把有效期延长到 12 个月。如果想让免签证的应用保持可用,请参阅如何在 7 天到期前刷新应用,关于 3 个应用数量上限的问题,请参阅免费 Apple ID 应用数量限制一文。

方法 3:使用 codesign 进行命令行重新签名

对于高级用户和自动化工作流程,使用 Apple 的 codesign 工具通过命令行操作可以带来最大的灵活性。此方法需要安装 macOS 和 Xcode 命令行工具。

第 1 步:解压 IPA

IPA 文件本质上就是一个 ZIP 压缩包。将其扩展名改为 .zip 后解压,或使用终端命令:

unzip MyApp.ipa -d MyApp_extracted

第 2 步:移除现有签名

rm -rf MyApp_extracted/Payload/MyApp.app/_CodeSignature

第 3 步:复制你的描述文件

cp MyProvisioningProfile.mobileprovision MyApp_extracted/Payload/MyApp.app/embedded.mobileprovision

第 4 步:使用 codesign 重新签名

先对应用内部的 frameworks 和应用扩展进行签名,然后再对应用本身签名,这样可以确保应用内部不会残留旧的签名:

codesign -f -s "Apple Development: Your Name (TEAMID)" MyApp_extracted/Payload/MyApp.app/Frameworks/*
codesign -f -s "Apple Development: Your Name (TEAMID)" --entitlements entitlements.plist MyApp_extracted/Payload/MyApp.app

较新的证书名称通常是 “Apple Development”,而较旧的证书可能仍显示为 “iPhone Developer”。运行 security find-identity -v -p codesigning 可以列出你 Mac 上确切的证书名称。entitlements 文件必须与你的 provisioning profile 匹配,因此应从该 profile 中获取相应值,而不是从原始应用中获取。

第 5 步:重新打包为 IPA

cd MyApp_extracted && zip -r ../MyApp_resigned.ipa Payload

无需 Mac 的重签名方式:zsign

zsign(MIT 许可证,截至 2026 年 10 月在 GitHub 上仍活跃更新)自称是”一款面向 iOS 12+ 的快速、开源、跨平台 codesign 替代工具”,可以”使用自定义证书和 provisioning profile 重新签名 .ipa 包和 .app 应用包,无需 Xcode,也无需 macOS”。其 README 中列出了支持 macOS、Linux、Windows、Android 和 FreeBSD 的构建版本,可为带有扩展的应用设置分应用扩展的 provisioning profile,支持修改 bundle ID 和显示名称,还提供证书与 OCSP 检查功能,可以显示证书是否仍然有效。你需要一个 .p12 证书、其对应的密码,以及一个匹配的 provisioning profile,实际上这意味着需要一个付费开发者账号。它是一款命令行工具,因此比较适合熟悉终端操作的用户。

直接在 Scarlet iOS 中重新签名

如果你使用的是 Scarlet iOS,大部分重签名的复杂工作都会在后台自动完成。当你将 IPA 导入 Scarlet 时,该应用会在安装前自动使用其自身的签名证书对其进行重新签名。这是相比手动方法使用 Scarlet 的主要优势之一。

对于进阶用户,我们关于iPhone 开发者模式的指南详细说明了何时需要开启 Apple 的开发者模式设置:如果是你用自己的 Apple ID 重新签名的应用,则需要开启;而 Scarlet 本身是企业签名的,不需要开发者模式。Scarlet 在 iOS 14 到 iOS 26 上均已确认可用;第三方报告称其支持 iOS 27,但官方尚未确认。

常见重新签名错误及解决方法

错误:”A valid provisioning profile for this executable was not found”

这表示你使用的描述文件(provisioning profile)未包含你设备的 UDID,或者该文件已过期。请在 Apple 开发者后台生成一个新的描述文件,并将你的设备添加进去。

错误:”The executable was signed with invalid entitlements”

有些应用会请求一些权限(entitlements),这些权限需要付费开发者账号或描述文件中启用特定功能才能使用。请检查该应用的 entitlements.plist 文件,移除你的账号级别不支持的权限项。

错误:”Code object is not signed at all”

这通常是因为应用内打包的框架(frameworks)没有和主程序一起重新签名。你需要先对每个框架单独重新签名,再对主应用程序包进行重新签名。

iPhone 上提示”Unable to Install”或”integrity could not be verified”

这说明签名、描述文件或设备列表之间不匹配。请检查描述文件中是否包含你的设备、每个框架是否都已签名,以及证书是否已被吊销。可参考如何修复 integrity 错误。

应用已安装但无法打开

在 iOS 16 及更高版本中,使用自己的开发者证书签名的应用需要开启开发者模式(Developer Mode),并且可能还需要在”设置 > 通用 > VPN 与设备管理”中信任该开发者。详见修复不受信任的开发者错误的说明。

重新签名 IPA 文件的最佳实践

  • 在重新签名之前,务必保留一份原始、未经修改的 IPA 备份。
  • 记录每个应用所使用的证书和描述文件,这样后续续签会方便很多。
  • 如果你需要多个应用之间相互通信(app groups),请确保所有应用都使用同一个团队 ID(team ID)进行签名。
  • 对于经常使用的应用,可以考虑购买付费 Apple 开发者账号,以避免每周重新签名的麻烦。

结语

重新签名 IPA 文件是每个想要完全掌控 iPhone 应用安装的人都应该掌握的基本技能。无论你选择图形界面工具、命令行方式,还是让 Scarlet iOS 自动完成这一切,了解其中的原理都能帮助你排查问题,并安装那些 App Store 上没有的应用。

如果你不想自己处理证书,选择一个可以在设备上直接签名的工具会更简单,可以参考如何安装 Scarlet iOS,或者在重新签名之前,先看看我们关于如何创建自己的 IPA 文件的教程。

常见问题

我可以在 Windows 上重新签名 IPA 吗?

可以。AltServer 和 Sideloadly 可以在 Windows 上用你的 Apple ID 进行签名,zsign 也能在 Windows 上通过 .p12 证书运行。

重新签名会保留我的应用数据吗?

只有当你用相同的 Bundle ID(如果使用 Apple ID 工具,还需是同一个 Apple ID)将重新签名后的应用覆盖安装到原应用上时,数据才会保留。如果先删除应用,其数据也会一并被删除。

我可以用免费的 Apple ID 进行重新签名吗?

可以,但根据 Apple 会员页面的说明,证书有效期只有 7 天,而且一台设备上最多只能同时安装 3 个通过 sideloading 安装的应用。

类似文章