如何通过Xcode更新iOS测试应用而非重新安装(保留数据)
如何通过Xcode更新iOS游戏并保留测试数据
当然可以!我之前做iOS游戏测试的时候也碰到过这个糟心的问题——每次覆盖安装都丢测试存档和分数,折腾半天白测了。下面几个方法亲测有效,帮你搞定:
方法一:依赖Xcode默认的增量安装(最省心)
- 核心前提:不要修改Bundle ID,也不要更换测试用的签名证书/Provisioning Profile。只要这两个和设备上已安装的旧版本一致,Xcode默认会做增量更新,不会清空App沙盒里的任何数据(包括存在
UserDefaults、Core Data,或者Documents目录里的分数、存档)。 - 操作很简单:直接点Xcode的"Run"按钮(或按Cmd+R),别先删掉设备上的旧App再安装。只要匹配条件满足,Xcode会自动覆盖安装但完整保留你的测试数据。
方法二:手动备份沙盒数据(保险兜底)
如果担心某次更新因为缓存或配置问题意外丢数据,可以提前备份沙盒:
- 打开Xcode的
Window > Devices and Simulators(快捷键Cmd+Shift+2)。 - 在左侧选中你的iPhone,找到你的游戏App,点击下方的"Download Container...",把整个沙盒数据导出到本地存好。
- 更新完App后要是真丢了数据,再点击"Replace Container...",把备份的沙盒导回去就行。
方法三:调整Xcode Scheme设置(避免自动清理)
有时候Xcode会因为缓存或默认设置强制清理数据,你可以检查一下:
- 点击Xcode顶部的Scheme,选择"Edit Scheme..."。
- 切换到"Run"选项卡的"Info"标签页,确保"Build Configuration"是
Debug(Release模式默认可能会触发数据清理,测试阶段一定要用Debug)。 - 再切到"Options"标签页,找到"Reset On Launch",确保这个选项是未勾选的状态——勾上的话每次启动都会重置App数据,一定要关掉。
额外提醒
- 如果你的游戏在更新中修改了数据模型(比如Core Data的实体结构),可能需要做数据迁移,不然旧数据可能无法读取。这时候不是Xcode的问题,得在代码里处理Core Data的轻量迁移或自定义迁移逻辑。
- 测试期间千万别随便改Bundle ID,这会让Xcode认为是全新App,必然会重新安装,旧数据就留在原来的App沙盒里读不到了。
内容的提问来源于stack exchange,提问作者LukaG
相关产品推荐
相关产品推荐

