侧载
问题描述
通过侧载为 iOS 安装第三方应用,本质就是要解决 apple 的沙盒机制对软件的签名证书发放及续签申请,但是侧载安装的开发者应用的签名证书有效期只有7天。
部署经过
- 由于身边缺少 Mac,只能通过云电脑模拟开发环境,这里用的是 Codemagic,它的 CI/CD 流水线非常丝滑,打包很快,你可以得到一个 Runner.app.zip 压缩包。
- 在本地修改一下压缩结构,然后将.zip改为.ipa,就得到了iOS上运行的软件格式。
- 接下来就进入了侧载环节,常用的侧载工具有:sideloadly、altstore(非欧盟成员国及日本,不支持PAL版)、sidestore(altstore进阶版),他们在下载时都有一个共性:需要下载iTunes登录apple id验证身份,sideloadly还需要iCloud验证。
- sideloadly是可以走通的,但是缺少客户端,过期了只能手动重新安装。
续签自动化
- altstore在开发者电脑上可以安装一个服务端,在移动端上安装的就是客户端,服务端通过客户端的真机身份向apple伪装申请一个签证申请,然后交给客户端app
- sidestore延续这种 C/S 交互模式,并将服务端与客户端一起封装到移动端 app 中,它们之间的通信还需要一个 VPN 提供本地回环隧道,欺骗 iOS 平台的 installd 监管(默认只安装具有apple签名证书的应用)
最后的问题
- sidestore服务端需要连接anisette服务器才能向apple申请证书,官方服务器大多在海外,但是移动端如果打开 VPN 通常与原有的代理冲突,这里我用搭建了一个rust版本的anisette服务器:https://jyjswk.online/anisette.json(需要自取)
- 现在还需要在sidesotre内登录你的apple id就可以正常使用了,但是当前接收apple发来的验证码,sidestore软件无法解析,后面贴出了anisette服务器请求结果、VPN配置、sidestore软件报错信息。



也有可能是QQ 邮箱注册的 Apple ID 在 Provisioning Profile 接口上受到苹果的额外限制,apple返回了异常格式的响应,SideStore 解析失败才报错。可以换成iCloud邮箱,用它自家的支持肯定好,但是暂未尝试。
应该是sidestore软件跟apple给出的api格式没有适配,于是更换了sidestore(nightly)版本,问题还是没有解决