Generated by Answer me with HTML 0.5.5 · 2026-10-30 20:16 · ★ Star on GitHub

iPhone 自签全景:证书、描述文件、LiveContainer 与 JIT

你手上这套 SideStore + LiveContainer 二合一,到底在跑什么

sourceSideStore 0.6.x / LiveContainer 3.8 / iOS 27.2

Lead: 一张 distribution 证书能长期签普通 App,但开不了 JIT。免费证书能开 JIT,但 7 天一轮。LiveContainer 里的 App 不占系统槽位,靠 LiveContainer 本体活着。掉签不删数据,删 App 才删数据。

A

先说你可能卡在哪

跟着教程一步步点,却不知道在点什么是正常的。教程只写「点这里」,不写这一步在跟谁说话。

这一页要拆掉三个误解:

  • 以为「签名」是一件事。其实是三件套:证书、描述文件、App 包。你看到的「描述文件」只是三件套里的一张纸。
  • 以为 LocalDevVPN 是翻墙工具。它一个字节都不出你的手机,它是给 iOS 造了一条虚拟数据线。
  • 以为 LiveContainer 是模拟器。它不模拟硬件,它只是把别的 App 装进自己的肚子里跑。
B

三件套:印章、通行证、包裹

每次启动都验这张函证书App ID设备 UDID权限清单描述文件iOS

用门禁比喻:证书是公章,描述文件是保安手里的通行证,App 包是被带进门的人。

通行证上钉死四件事:谁盖的章、进哪栋楼、允许进哪几层、有效期到哪天。少一样,或者过期一天,保安就不让进。

你用免费 Apple ID 时,苹果给的不是一张证,是两张:

  • 证书有效期 365 天,一年换一次。
  • 描述文件有效期只有 7 天,所以要每周「续签」。
  • 续签不是重新签 App。续签是去苹果那换一张新的通行证,再塞进 App 包里。

朋友给你的 distribution 证书是另一套路子:

项目 免费 Apple ID distribution 证书
证书有效期 365 天 通常 1 年,企业签 3 年
描述文件有效期 7 天 通常 1 年
装机数量 只限你自己登记的设备 Ad Hoc 限登记设备,企业签不限
get-task-allow 权限 有 没有
能开 JIT 能 不能

get-task-allow 是关键那一行。它允许调试器挂上去。JIT 必须靠调试器。所以 distribution 签的 App 天生开不了 JIT,这不是你的操作问题。

C

掉签以后,文件还在不在

先把一句话记住:iOS 删 App 才删数据,掉签不删数据。

掉签时你看到「App 不再可用」,那是保安拦在门口,不是房子被拆了。房子的门牌号就是 bundle id。

你做了什么 数据结果 说明
描述文件过期,图标变灰 数据全在 只是进不去
用同一个 bundle id 覆盖安装 数据全在 新包接回老容器
手动删除 App 再重装 数据没了 容器跟 App 一起删
换了 bundle id 装同名 App 当成新 App 系统认不出是同一个
LiveContainer 本体过期 里面的 App 全锁 但容器没删
删除 LiveContainer 里面数据一起没 除非用了外部容器

「文件」App 里「我的 iPhone → 某个 App」那个文件夹,就是这个 App 沙盒里的 Documents。它不在系统公共区,它在 App 自己的房子里。所以删 App,它跟着没。

微信这类 App 同理。聊天记录在它自己的沙盒里,不是公共文件。掉签时记录还在,删 App 就真没了。

两个逃生口:

  • 想留东西,就永远别长按删除。掉签了直接覆盖安装同一个包。
  • 重要数据定期往外搬。搬到 iCloud Drive 的文件,才算离开这栋房子。

iCloud 备份会带上 App 数据,包括自签 App。但恢复设备时,App Store 不会帮你装回自签 App。数据躺在备份里,你得重新签名装回去才看得到。本地加密备份还会带上钥匙串,登录态也能回来。

D

LocalDevVPN 到底在干什么

请求安装交换 IP 发回去以为收到了电脑的回复换新证装回去设备 10.7.0.0假电脑 10.7.0.1SideStore描述文件

正常装 App 要靠电脑上的 iTunes 或 Finder,通过 USB 跟手机的安装服务说话。没有电脑,这条路就断了。

LocalDevVPN 造了一个虚拟网段:手机拿 10.7.0.0,另一头 10.7.0.1 假装是那台电脑。它干的事只有一件——把发往假电脑的包,改个 IP 再发回手机自己。

结果就是:iOS 以为自己在跟电脑通话,其实对面是 SideStore 自己开的服务。SideStore 冒充 iTunes,把新描述文件装了进去。

所以这个 VPN:

  • 不出网,没有服务器,没有流量。
  • 不耗电,因为不连外部。
  • 只在你装、刷、续签的那一刻有用。
  • 同一时间只能有一个 VPN,它会跟你的机场客户端打架。
E

为什么非要 WiFi,能不能绕

官方原话是:需要一个 Wi-Fi 连接,移动网络「不适合」。原因是 iOS 不允许这类「指向本机地址」的隧道在纯蜂窝下建立起来。

于是就出现一个很别扭的规则:要么连着 WiFi,要么开着飞行模式。飞行模式能成,是因为那时没有别的网络在抢路由。

四种绕法,按省事程度排:

  1. 走官方新开关。SideStore 0.6.4 起有实验性的蜂窝刷新,能批量刷。
  2. 手动骗一次。先开 LocalDevVPN,再开飞行模式,最后打开蜂窝数据。隧道活着,网也回来了。
  3. 改路由器。让家里的路由器替你做那次 IP 交换,手机端就完全不用开 VPN。代价是必须在那个局域网里。
  4. 换成长期证书。不需要 JIT 的 App 直接用 distribution 签,一年不用管刷新。

第一种要配两条快捷指令,缺一条就不工作:

  • 建一条「打开蜂窝数据 → 打开 SideStore」,命名为 TurnOnData。
  • 建一条「关闭蜂窝数据 → 打开 SideStore」,命名为 TurnOffData。
  • 打开 SideStore 设置 → 诊断 → 实验功能 → 蜂窝刷新。
  • 之后在没 WiFi 的地方刷新即可。

原理就是脚本替你把蜂窝关掉,让隧道起来,再把蜂窝打开。

F

LiveContainer 与二合一的续签链路

LiveContainer 是个「寄居蟹」。真正被系统承认的只有它一只壳,其它 App 都住在壳里。

每 7 天换通行证用导入的证书重签两边共用同一份内置 SideStoreLiveContainer 本体里面每个 App证书

所以答案是:能管内外,但不是同一条链路。

  • 外面那一层,是内置 SideStore 在续。它刷的是 LiveContainer 本身的描述文件。
  • 里面那一层,是 LiveContainer 自己在重签。它用的是你从 SideStore 导入的证书。
  • 两条链路共用一张证书和一个 Apple ID。证书一废,两头一起完。

注意:二合一只占免费账号的 1 个槽位。这就是它存在的主要理由。

里面的 App 也不等于系统 App:

能力 系统直装 LiveContainer 里
占免费账号槽位 占 不占
独立进程、独立内存上限 有 共享 LiveContainer 的额度
推送通知 有 一般没有
小组件、扩展 有 一般没有
添加到主屏幕 系统图标 快捷指令图标,不是真安装
数据位置 自己的沙盒 LiveContainer 的容器里

「添加到主屏幕」那一步要看清:它只是建了个快捷方式,点开还是先喊 LiveContainer 起来。它没有把 App 装进系统的事实不会变。

想让里面的数据活得更久,可以在 LiveContainer 里给 App 建外部容器,把数据放到「文件」App 的目录下。这样删掉 LiveContainer,数据还在。

G

JIT:为什么它这么挑证书

用大白话讲:JIT 是让 App 一边跑一边现写新指令。苹果的芯片默认不允许这种内存。要开这个后门,必须有个调试器全程挂着证明「这是我自己的开发版本」。

于是结果很干脆:

  • 免费开发证书有 get-task-allow,能开 JIT,代价是 7 天一轮。
  • distribution 证书没有这个权限,怎么调都开不了。
  • 这就是那个现象的答案:能开 JIT 的签名,只有免费证书。

在 LiveContainer 里开 JIT,要点三处:

  • 设置 → JIT → 选 StikDebug。iOS 26 起只有 StikDebug 这一条路。
  • 长按 App → 设置 → 打开「Launch with JIT」。
  • 芯片从 A15、M2 这一代起,还要给每个 App 单独放 JIT 脚本。脚本找 App 作者要。

iOS 27 的现状要接受:大部分 App 开不了 JIT。SideStore 官方在 2026 年 6 月列出的可用名单只有这些:

App iOS 27 上
UTM
Amethyst
MeloNX
maciOS
Geode
Manic EMU
Flycast(iOS 26 分支)
MeloCafe
ARMSX2
DukeX 只在 A13、A14、M1 上能到 27
DolphiniOS 只到 26.6

名单会变。装之前先看 App 自己的说明,别拿这份表当永久有效。

H

你这套每 7 天要做的事

  • 先开 LocalDevVPN,确认状态是已连接。
  • 打开内置 SideStore,先刷 LiveContainer 本体。
  • 再进 LiveContainer,让里面的 App 用证书重签。
  • 用 StikDebug 的 App Expiry 看一眼,确认描述文件真的生效。
  • 显示还有 7 天才算刷成功,只看「无报错」不够。

顺手记住三条反例:

  • 大版本更新前别急着升。iOS 26.4、26.5 都曾经把整套打回原形。
  • LiveContainer 本体过期,里面的 App 一起锁死。它是壳,壳破了全破。
  • 换 Apple ID 或换证书,等于全部重签。数据在,但要一个个覆盖装回去。
一句话带走

掉签是门禁失效,删 App 才是拆房子。证书决定能不能开 JIT,描述文件决定能用几天,LiveContainer 决定占不占槽位。这三件事互不替代。

哪块没看懂直接问我。想让我展开某一段,比如把路由器那次 IP 交换写成可照抄的配置,说一声。