最近 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 常见的几种签名方式
目前大家比较常接触的有七种:
- 免费自签
- 个人开发者签名
- UDID 签名
- 共享证书签名
- 企业签名
- TrollStore(巨魔)
- 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,签名只解决应用安装和运行授权这一部分问题,至于能否使用它的相关功能,还取决于设备型号、系统版本及对应功能的技术条件。
四、为什么签过名的应用还是会掉签?
最后再简单说一下掉签。
很多人以为只要买一个有效期一年的证书,安装的应用就一定能使用一年。
实际上不是这样的。
常见掉签原因包括:
-
免费自签超过 7 天没有刷新。
-
签名证书到期或被撤销。
-
开发者账号异常或会员资格失效。
-
UDID 授权或描述文件不再有效。
-
应用重新签名后,标识、权限等配置不匹配。
其中,第三方共享证书和商业 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/