iOS 16 以上保存进度时直接闪退的解决
问题表现
在 iOS 16 或更高版本上使用 App Store 下载的 XP3Player:
- 游戏能正常启动、能正常看剧情
- 但一旦游戏逻辑需要弹出对话框(保存进度、读取存档、选项确认),XP3Player 立刻崩溃退回到桌面
根因
Apple 在 iOS 16 中改变了 UIKit 的弹窗 API 调用逻辑。KiriKiri2 引擎内部的弹窗代码是按照旧版本 iOS 的规范写的,直接调用会触发运行时异常。
开发者聃张没有及时适配这个变化,导致所有新版本 iOS 用户都中招。
解决方案选择
方案 A:侧载旧版本 IPA(最简单)
XP3Player 1.3.8 版本(2018 年 6 月发布)及之前的版本使用的弹窗逻辑能兼容 iOS 16+。但 App Store 只能下载最新版,要装旧版需要侧载。
优点:不需要容器,安装的就是 XP3Player 本身缺点:旧版本缺少 File App 文档显示等新功能,只有七天签名有效期
方案 B:LiveContainer 容器内运行 KrKr 引擎(最推荐)
把 KrKr 引擎 IPA 装进 LiveContainer 容器中运行。容器化环境会拦截并重定向部分系统 API 调用,让引擎的旧弹窗逻辑在新系统上也能工作。
优点:存档功能完美恢复,可以同时装多个 IPA 缺点:侧载配置过程较长(一次性,配好后自动续签)
方案 C:不用存档了
硬玩下去不存档。适合只想"快速刷一遍剧情、不追求完整通关体验"的用户。
不推荐的做法
- 降级 iOS 系统——Apple 早已关闭旧版本签名,除非你有 SHSH blob 备份,否则不可能降级
- 越狱——风险大,而且新 iOS 版本越狱工具不稳定,不值得为了一个 GalGame 就越狱
- 反复卸载重装 App Store 版——没用,崩溃逻辑在引擎层,重装还是一样