如何搞定免费Apple ID签名7天过期:Madeira每周重建重装且存档不丢
【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira
在 iPhone 上玩 Windows 游戏的开源项目 Madeira 通过 FEX-Emu + Wine + DXMT 让 x86-64 PC 游戏(如 Thumper、ULTRAKILL)在未越狱的 iOS 上运行。它只能用侧载安装,而免费 Apple ID 签名的描述文件 7 天就过期——本文教你建立"每周重建重装、存档不丢"的完整流程。
为什么免费 Apple ID 签名的有效期只有7天
Madeira 属于研究性质项目,依赖 JIT 即时编译技术,而 iOS 上的 JIT 必须由调试器附加后才能启用(项目使用 StikDebug 实现)。这意味着应用无法上架 App Store,只能走侧载(sideloading)路线。
官方 README.md 中明确说明了这一约束:
A free account works; its provisioning profiles expire after 7 days, so the app must be rebuilt and reinstalled weekly. The app's container survives reinstall, so prefixes and saves are preserved.
也就是说:免费 Apple ID 可以用,签名 7 天过期后必须重建并重装,但应用容器(存放 Wine 前缀和游戏存档的地方)在重装后依然保留。这正是"存档不丢"的根本原因。
存档不丢的原理:iOS 应用容器机制
理解这一点,你就不会被"重装"吓到:
| 项目 | 重装后是否保留 | 说明 |
|---|---|---|
| 应用容器(Documents 等) | ✅ 保留 | Wine 前缀、游戏存档都在这里 |
| 签名描述文件 | ❌ 7天过期 | 需要每周重新签名 |
| 应用本体(IPA) | ❌ 需重装 | 用同一个 IPA 覆盖安装即可 |
游戏数据实际存放在容器的Documents/wine/drive_c/下——在 Wine 眼里这就是C:\盘。开发脚本 scripts/deploy-thumper.sh 清楚地展示了这个结构:游戏目录会被推到Documents/wine/drive_c/Program Files/下,对应 Windows 视角的C:\Program Files\。只要容器不删,你的存档、Wine 配置、游戏文件全部原地不动。
⚠️ 唯一要注意的:不要点击"删除 App 并清除数据",普通卸载/覆盖安装不影响容器。
每周重建重装的完整流程
第 1 步:获取仓库源码
首次构建时需要递归克隆(包含 FEX、wine 等子模块):
git clone --recurse-submodules https://gitcode.com/GitHub_Trending/mad/Madeira注意FEX、wine等子模块指向包含 iOS 改造的 fork,详见 README.md 的 Building 一节。
第 2 步:执行原生构建链
构建分为多条链路——unix 侧 Wine 库、ARM64EC PE 模块、FEX、DXMT 和 iOS 应用本身。各步骤脚本及顺序完整记录在 docs/BUILDING.md,其中每个build/*/build.sh负责一块原生组件,例如:
build/gnutls-ios/build.sh—— GMP / Nettle / GnuTLS 静态库build/fex-ios/build.sh—— FEX x86-64 翻译核心build/wine-pe/build-ntdll.sh—— Wine ntdll 的 ARM64EC 版本build/dxmt-ios/build.sh—— D3D11 到 Metal 的转换层
这些组件只在首次或改动时需要重跑;每周刷新签名时,重点是最后一步。
第 3 步:用 xcodebuild 重新签名构建
签名命令来自 docs/BUILDING.md,-allowProvisioningUpdates会自动向 Apple 服务器申请新的 7 天描述文件:
xcodebuild -project app/Madeira.xcodeproj -scheme Madeira \ -destination 'generic/platform=iOS' -allowProvisioningUpdates build两个关键细节:
- 用 Debug 配置构建——文档明确记录"Debug is the configuration that runs the games; Release builds have crashed the guest"(Debug 才是能跑游戏的配置)。
- 将产物
Payload/Madeira.app压缩成 IPA,然后用任意侧载工具(AltStore、SideStore 等)用同一个免费 Apple ID重装。
把这三条命令存成一个每周执行的脚本,整个流程就能压缩到几分钟。
进阶技巧:重装时的隐藏福利
免费签名可叠加的内存提升
项目架构文档 ARCHITECTURE_ANALYSIS.md 记录了 Trick 7:iOS 的 Jetsam 内存上限默认 4096 MB,而免费开发者账号可以通过 GetMoreRam 这类工具申请increased-memory-limit权限。妙处在于——该流程的最后一步正好就是"删除并重装",与你每周的重建周期天然契合,可以搭车完成。
游戏文件的推送方式
每周重装后如需重新推送大型游戏目录,可参考 scripts/deploy-thumper.sh 中的xcrun devicectl device copy to方式,把游戏文件夹直接写进appDataContainer域下的Documents/wine/drive_c/Program Files/,无需解包 IPA。
前缀模板加速初始化
仓库自带prefix-template.tar.gz(位于 app/Madeira/prefix-template.tar.gz),配合 tools/check-prefix-template.sh 校验。容器在首次启动时会自动解包出drive_c/与标准目录结构,避免从零初始化 Wine 前缀。
常见问题 FAQ
Q1:7 天过期后 App 会怎样?应用会直接闪退或无法启动(描述文件失效)。用同一个 IPA 重装即可恢复,容器数据不丢失。
Q2:能不能一次签更久?免费账号的硬上限就是 7 天。付费开发者账号($99/年)可签 1 年,且可解锁extended-virtual-addressing等权限,但项目当前设计目标就是"纯免费侧载可用",见 STEAM_CEF_HANDOFF.md 的约束说明。
Q3:重装后游戏存档还在吗?在。存档和 Wine 前缀都在应用容器里,容器跨重装存活——这是 README.md 中明确承诺的行为。
Q4:为什么必须重建而不是直接重装旧 IPA?旧 IPA 里的描述文件仍是 7 天前的,装上去依然会立刻过期。必须重新构建让签名工具拉取新描述文件。
总结
| 事项 | 结论 |
|---|---|
| 过期周期 | 7 天,无法延长(免费 Apple ID) |
| 应对方案 | 每周 xcodebuild 重建 + 同 IPA 重装 |
| 存档安全 | 应用容器跨重装保留,prefix 与 saves 无损 |
| 关键参数 | Debug 配置、-allowProvisioningUpdates、同一 Apple ID |
把"每周重建"当成给手机装游戏的固定仪式:一条构建命令、一次覆盖安装,存档完好无损。想深入了解构建细节,请阅读 docs/BUILDING.md;想理解签名与 JIT 的底层关系,可参考 docs/LICENSING.md 和 README.md 的 Requirements 一节。
【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考