我正在制作一个 iPad 应用程序,该应用程序将使用企业分发计划从我自己的 Web 服务器分发。 应用程序本身会检查服务器上是否有更新版本,并调用 IOS 中的 itms-services 来更新自身。这很完美。
应用程序包包含一个包含图像和电影等资源的目录。
Apple 声称,如果 bundle 标识符相同,更新将保留用户数据。
来自:http://help.apple.com/iosdeployment-apps/mac/1.1/#app43ad802c
If you want users to keep the app’s data stored on their device, make sure the new version uses the same bundle-identifier as the one it’s replacing, and tell users not to delete their old version before installing the new one. The new version will replace the old one and keep data stored on the device, if the bundle-identifiers match.
当从 Xcode 直接在连接的 iPad 上运行应用程序时,我可以删除包含资源的文件夹,再次运行应用程序,并且该文件夹仍保留在我的 iPad 上的 bundle 中。
这种行为正是我所寻找的。我计划添加更多包含新资源和新更新的文件夹。由于资源相当庞大,我不希望用户必须下载越来越大的文件。我只想添加新内容。
当我创建一个没有文件夹的新存档并像用户一样从我的网络服务器更新应用程序时,就会出现问题。然后该文件夹似乎被删除了。
有这方面的经验吗?
最佳答案
您安装的 bundle 始终会被您安装的新 bundle 覆盖。文档中提到的用户数据是存储在文件系统的Documents 和Library 文件夹中的数据。如果您希望确保旧的 bundle 文件始终可用,您可以将它们从 bundle 复制到应用程序的 Library/Caches 文件夹中。 值得一提的是,确保临时安装覆盖当前 bundle 的方法是确保您更改 bundle 版本。
希望这有帮助:)
关于IOS Enterprise Distribution 更新会保留用户数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929784/