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

时间:2010-07-13 09:15:34

标签: iphone objective-c

我有一个应用程序(游戏),它在Documents目录中存储数据(得分高等)(通过指定NSDocumentDirectoryNSSearchPathForDirectoriesInDomains得到)。

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

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

3 个答案:

答案 0 :(得分:2)

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

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

您最好的选择可能是通过应用内购买提供升级的应用。它节省了很多麻烦。

以下是一些参考资料:

http://www.iphonedevsdk.com/forum/iphone-sdk-development/13813-can-lite-paid-apps-share-user-data.html
How to share custom data between iPhone applications?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

使用

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

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