iOS 签名到底是什么?一文搞懂自签、开发者证书、UDID签名、巨魔和TestFlight

最近 GestaltX 这个工具很火,但是很多朋友都卡了安装这一步,因为我发现不少朋友连 IPA 怎么安装、iOS 签名是什么都不太清楚,还有人问为什么安装的应用过几天就打不开了,或者为什么有的证书几十块钱就能买到,有的却要几百块。

其实这些问题都跟 iOS 的应用签名机制有关。

今天就简单聊聊 iOS 签名到底是什么,以及普通用户最常接触的几种签名方式。

一、为什么 iOS 安装 IPA 需要签名?

我们都知道,Android 可以直接安装 APK 文件,而 iOS 相对封闭,不能像 Android 那样随便下载一个安装包就安装。

iOS 的应用安装包通常是 .ipa 格式。

苹果为了保证系统安全,建立了一套代码签名验证机制。简单理解就是:一个应用想在 iPhone 上安装和运行,必须具备系统认可的有效签名,并满足相应的授权条件。

我们从 App Store 下载的应用,苹果已经处理好了这些事情,所以普通用户感觉不到签名的存在。

但如果要安装 App Store 之外的 IPA,比如一些开源工具、测试软件、修改版应用,就可能需要自己解决签名和安装问题。

签名通常涉及三个东西:

  • 证书(Certificate):证明由哪个开发者或开发团队进行签名。

  • 私钥(Private Key):用来生成数字签名,必须妥善保管。

  • 描述文件(Provisioning Profile):规定应用标识、签名团队、授权设备以及可以使用的部分系统能力等。

简单说,证书解决身份问题,描述文件解决授权问题,而数字签名用于验证应用代码的完整性和来源。

需要注意,签名有效不代表应用一定安全,也不代表应用能够获得任意系统权限。

二、iOS 常见的几种签名方式

目前大家比较常接触的有七种:

  1. 免费自签
  2. 个人开发者签名
  3. UDID 签名
  4. 共享证书签名
  5. 企业签名
  6. TrollStore(巨魔)
  7. TestFlight

严格来说,它们并不全是独立的签名类型,有些是证书使用方式,有些则是应用分发或安装工具。

其中,普通用户最值得了解的是前三种。

1. 免费自签:最适合普通用户

所谓自签,就是使用自己的 Apple ID(现在苹果称为 Apple Account),通过开发者工具给 IPA 签名,再安装到自己的 iPhone。

常见工具有:

  • AltStore

  • SideStore

  • Sideloadly

  • Xcode(需要 Mac)

这也是我比较推荐的方式。

最大的优点就是免费,不需要购买开发者账号,也不需要向第三方购买证书。

但免费自签存在几个限制:

  • 有效期只有 7 天,到期前需要重新刷新签名,否则应用可能无法打开。

  • 每台设备最多同时安装 3 个使用免费开发者配置签名的应用。

  • 免费开发者账户还有 App ID 数量限制,通常是 7 天内最多注册 10 个。

  • 某些高级系统能力和特殊权限无法使用。

这里说的 3 个应用限制,不是指手机只能安装 3 个 App,而是针对这种免费开发者签名安装方式。

不过,前面介绍过的 LiveContainer 可以在一定程度上绕过这个限制。

它的原理并不是让苹果允许你直接安装无限个自签应用,而是通过一个容器,在其中运行多个 IPA,减少独立安装名额的占用。

当然,这种方式也有兼容性限制,并不是所有应用都能完美运行,也不能彻底解决 7 天签名有效期的问题。

个人觉得,如果只是偶尔安装几个开源工具,免费自签完全够用了。

2. 个人开发者签名:稳定,但价格不便宜

如果觉得每 7 天刷新一次太麻烦,也可以直接申请苹果官方开发者账号。

Apple Developer Program 的标准费用是 99 美元/年,部分地区按当地货币收费。

申请成功后,就可以使用付费开发者账号提供的证书和描述文件,为自己的应用签名。

相比免费自签,付费开发者账号有几个明显优势:

  • 不再受免费自签的 7 天有效期限制。

  • 不受免费账号每台设备 3 个应用的限制。

  • 可以使用更多开发者能力和服务。

  • 可以通过 TestFlight 测试应用,也可以申请上架 App Store。

不过,千万不要把它理解成花了 99 美元就能无限制安装任何 IPA。

开发者账号依然需要遵守苹果的签名、授权和分发规则。比如使用 Ad Hoc 方式分发应用,就需要预先注册设备,iPhone 等设备类别通常每个会员年度最多注册 100 台。

而且证书、描述文件以及开发者会员资格都有有效期,签名也可能因为账号或证书被撤销而失效。

所以它并不是永久签名,只是相比免费自签,维护起来更加方便。

对于经常开发、测试 iOS 应用的朋友来说,申请一个自己的开发者账号是比较省心的选择。

3. UDID 签名:淘宝常见的付费签名

很多朋友可能在淘宝、闲鱼或者第三方签名平台购买过所谓的 P12 证书。

商家经常宣传:

“免越狱安装 IPA。”

“不用每 7 天重新签名。”

“支持安装多个应用。”

这些服务中,相当一部分使用的就是 UDID 签名,也就是苹果的 Ad Hoc 设备授权分发机制。

UDID 可以理解为 iPhone 的设备唯一标识符。

它的基本原理是:

商家拥有付费开发者账号,然后将你的设备 UDID 添加到开发者账号的授权设备列表,再生成包含你设备信息的描述文件,用于给 IPA 签名。

这样,符合授权条件的应用就能安装到你的手机上。

优点很明显:

  • 不需要自己申请 99 美元的开发者账号。

  • 通常不需要每 7 天刷新签名。

  • 不受免费自签 3 个应用的限制。

  • 价格一般比自己购买开发者会员便宜。

但它最大的缺点就是:稳定性取决于证书来源、账号状态以及商家的管理情况。

如果商家大量出售设备授权,或者存在违反苹果开发者协议的行为,账号或证书可能被撤销。

一旦证书被撤销,相关应用就可能出现无法验证、无法打开等情况,这就是大家常说的“掉签”。

这里还有一个特别容易弄错的概念:

P12 不等于 UDID 签名。

P12 是一种证书及私钥的打包文件格式,本身并不能说明采用了哪种分发方式。

实际签名时,还需要与之匹配的描述文件。淘宝出售的 P12 可能来自不同类型的开发者证书,不一定都是 UDID 签名。

所以买证书时,除了价格,更要确认它是什么签名类型、是否包含设备授权、有效期多久,以及掉签后的处理方式。

另外,不要随便把自己的 Apple ID 密码交给陌生商家。UDID 签名本身并不需要商家掌握你的 Apple ID 密码。

4. 共享证书签名:便宜,但容易掉签

共享签名的意思,就是多个人使用同一套签名资源。

有些第三方平台会提供共享 P12 证书和描述文件,让用户自行签名安装 IPA。

它本质上不是苹果单独定义的一种签名类别,而是一种证书共享使用模式。

这种方式价格通常比较低,但因为使用人数多、证书管理复杂,出现撤销或失效的风险也相对更难控制。

对于不重要的临时工具,可以根据风险自行考虑;如果是需要长期使用的应用,我个人不太建议依赖来源不明的共享证书。

尤其要注意,P12 文件包含签名私钥,不能把自己开发者账号的 P12 随意分享出去。

5. 企业签名:原本是给企业内部使用的

苹果还有专门的 Apple Developer Enterprise Program,标准费用是 299 美元/年。

这种机制主要是为符合条件的大型组织开发和分发内部应用准备的。

比如企业内部办公软件、员工专用工具等。

企业内部应用可以通过符合要求的内部系统或 MDM 分发,不需要像 Ad Hoc 那样逐台注册设备 UDID。

但企业签名并不是为公开销售第三方 IPA 安装服务设计的。

以前网上有不少所谓的企业签名平台,将企业证书用于大规模公开分发应用。这类行为容易触发苹果的违规处理,导致证书被撤销,安装的应用集体失效。

所以普通用户没有必要专门追求企业签名。

6. TrollStore(巨魔):特殊版本的免刷新安装

说到 iOS 签名,就绕不开 TrollStore,也就是大家常说的“巨魔”。

它比较特殊。

TrollStore 并不是使用普通开发者证书进行签名,而是利用特定 iOS 版本中的 CoreTrust 签名验证漏洞,实现应用的持久安装。

它的优势非常突出:

  • 不需要每 7 天刷新签名。

  • 不需要购买开发者证书。

  • 不受普通免费自签的 3 个应用限制。

  • 可以在受支持系统上实现一些普通签名方式无法实现的能力。

但它最大的限制就是系统版本。

目前常见的 TrollStore 2 主要支持 iOS 14.0 至 16.6.1 的部分版本,以及 iOS 17.0 等特定版本,并不是所有中间版本都支持。

对于已经升级到较新 iOS 系统的 iPhone,尤其是 iOS 18 及之后的系统,不能指望直接安装传统 TrollStore。

另外,TrollStore 不等于越狱,也不意味着可以任意修改 iOS 的所有系统功能。

如果你恰好有一台符合条件的旧系统 iPhone,那确实值得研究一下。

项目地址:

7. TestFlight:苹果官方的应用测试渠道

最后是 TestFlight。

它是苹果官方提供的应用 Beta 测试分发平台。

开发者可以通过 App Store Connect 上传测试版本,邀请其他用户安装和体验应用。

对于普通用户来说,操作非常简单,只需要安装 TestFlight,再通过开发者提供的邀请链接加入测试即可。

优点是无需自己准备签名证书,也不需要通过第三方工具安装 IPA。

但它同样有限制:

  • 必须由开发者上传并分发测试版本。

  • 单个测试构建版本最长可测试 90 天。

  • 开发者可以主动终止测试。

  • 外部测试构建可能需要经过苹果审核。

所以 TestFlight 适合体验开发者主动提供的测试版本,并不能用来随意安装自己下载的任意 IPA。

三、这几种方式到底怎么选?

简单整理一下:

方式 主要成本 有效期或限制 适合人群
免费自签 免费 7 天,3 个应用 普通用户
个人开发者签名 99 美元/年 依证书和描述文件而定 开发者、重度用户
UDID 签名 第三方收费 依授权和证书状态而定 不想每周刷新签名的用户
共享证书 通常较便宜 不确定性较高 临时使用
企业签名 企业项目费用 企业资格及证书限制 合规企业内部应用
TrollStore 免费 特定系统版本支持 旧系统用户
TestFlight 测试者通常免费 单个构建最长 90 天 Beta 测试用户

需要强调一点:不管使用哪种普通签名方式,都不能保证任意 IPA 在手机上正常运行。

有些应用依赖特殊系统权限、特定系统版本或者漏洞环境,仅仅换一张证书并不能解决这些问题。

比如之前分享的 GestaltX,签名只解决应用安装和运行授权这一部分问题,至于能否使用它的相关功能,还取决于设备型号、系统版本及对应功能的技术条件。

四、为什么签过名的应用还是会掉签?

最后再简单说一下掉签。

很多人以为只要买一个有效期一年的证书,安装的应用就一定能使用一年。

实际上不是这样的。

常见掉签原因包括:

  1. 免费自签超过 7 天没有刷新。

  2. 签名证书到期或被撤销。

  3. 开发者账号异常或会员资格失效。

  4. UDID 授权或描述文件不再有效。

  5. 应用重新签名后,标识、权限等配置不匹配。

其中,第三方共享证书和商业 UDID 签名服务最需要关注的,就是证书被提前撤销的问题。

而且掉签不仅仅意味着重新安装那么简单。

部分应用重新安装后,原来的本地数据可能无法恢复。所以有重要数据的应用,最好提前做好备份,不要轻易删除原应用。

五、最后说两句

我个人的建议其实很简单。

如果只是偶尔安装几个 IPA,优先选择免费自签,使用 AltStore 或 SideStore 就可以满足大部分需求。

如果觉得 3 个应用名额不够,可以了解一下 LiveContainer,我之前也专门介绍过这个项目。

如果经常需要安装、调试各种 IPA,又不想折腾 7 天刷新,那么可以考虑购买正规开发者会员。

至于淘宝上的 UDID 签名或者 P12 证书,也不是不能用,但一定要搞清楚证书来源和签名类型,别以为几十块钱就买到了所谓的“永久签名”。

更不要为了安装一个来历不明的 IPA,随意提供自己的 Apple ID 密码、安装陌生描述文件或授予不必要的设备管理权限。

总结就是:普通用户优先免费自签;经常开发测试的用户考虑官方开发者账号;有特殊 IPA 需求又不想折腾刷新机制的,可以根据风险考虑可靠的 UDID 签名服务。

签名只是让应用通过安装和运行验证的一道门槛,并不代表所有 IPA 都能装、都能用,更不代表它们一定安全。

了解这些基本原理之后,以后再碰到“掉签”“P12”“UDID”“巨魔”这些词,应该就不会一头雾水了。


相关参考:

苹果开发者计划:Apple Developer Program - Apple Developer

苹果开发者账号说明:Developer account overview - Basics - Account - Help - Apple Developer

TrollStore:GitHub - opa334/TrollStore - Jailed iOS app that can install IPAs permanently...

LiveContainer:GitHub - LiveContainer/LiveContainer - Run iOS apps without actually installing them!

AltStore:https://altstore.io/

SideStore:https://sidestore.io/