Iphone 如何从同一应用的免费和付费版本访问文件?

Iphone 如何从同一应用的免费和付费版本访问文件?,iphone,objective-c,Iphone,Objective C,我有一个应用程序(游戏),它将数据(高分等)存储在文档目录中(通过指定NSDocumentDirectory到NSSearchPathForDirectoriesInDomains获得) 现在我想发布我的应用程序的免费版本。我希望两个应用程序能够访问相同的文件(例如:免费应用程序的用户获得一些高分,然后升级到付费应用程序-免费版本保存的高分应加载到付费应用程序中)。因为这些应用程序有不同的应用程序id(这对单独的免费/付费版本来说是正确的吗?),所以它们会有不同的保存位置,是吗 所以我想第一个问

我有一个应用程序(游戏),它将数据(高分等)存储在文档目录中(通过指定
NSDocumentDirectory
NSSearchPathForDirectoriesInDomains
获得)

现在我想发布我的应用程序的免费版本。我希望两个应用程序能够访问相同的文件(例如:免费应用程序的用户获得一些高分,然后升级到付费应用程序-免费版本保存的高分应加载到付费应用程序中)。因为这些应用程序有不同的应用程序id(这对单独的免费/付费版本来说是正确的吗?),所以它们会有不同的保存位置,是吗


所以我想第一个问题是,为同一个应用程序的免费和付费版本提供单独的应用程序id是正确的吗?如果是这样,第二个问题是,如何在它们之间共享文件?

如果您的应用程序都具有相同的标识符(通配符标识符),它们可以共享一些数据。据我所知,它仅限于使用钥匙链,所以对你没有多大用处

应用程序无法读取其他应用程序文档文件夹,因此您的其他选项是注册自定义URL方案,并在Lite版本中使用“向付费版本发送高分”。或者您可以使用带有登录名的服务器(或一个社交游戏框架)

您最好的选择可能是使用一个应用程序,通过应用内购买提供升级。这样可以省去很多麻烦

以下是一些参考文献:



让应用程序将高分上传到某个服务器上,与一些登录信息或设备的UUID一起保存,然后稍后重新下载。

使用

Context otherAppCtx= ctx.createPackageContext("package of the app from retrieve data");

然后在
otherAppCtx
上,您可以加载任何资源。

一个应用程序和应用程序内购买升级绝对是一个不错的选择。