2008-10-21 70 views

回答

19

有两种不同的方法可以解决这个问题。

1)您需要共享的数据是非持久性的。换句话说,您需要使用可以执行某些操作的数据来启动一个应用程序。在这种情况下,您将为每个应用程序注册一个特殊的URL方案

您可以通过Craig Hockenberry在他的[redacted] blog post中找到关于URL方案的更多信息。

2)你需要共享的数据是持久的。换句话说,您需要类似数据文件的东西,这两个应用程序都可以读取和写入。据我所知,除了将您的数据存储在远程服务器上之外,没有一种安全的方法可以做到这一点。如果你需要的数据可以在没有数据连接的情况下访问,那么你需要找出一种方法来在各个应用程序和远程服务器之间同步数据。

19

除了已经提到的内容之外,关于代码签名的iPhone文档似乎暗示使用相同身份签名的应用程序可以访问相同的钥匙串项目。如果你需要存储相对少量的数据(密码等),这可能是一种有用的技术。

+0

是的,在Micheal Ledford的回答之后,据我所知这是正确的,我开始关注钥匙串,我不确定如何获得签名权,但它可能是共享小数据的解决方案(恰好是密码)。 – 2008-10-21 04:20:39

+1

我还没有试过它,但这看起来像钥匙串一步一步:http://shaune.com.au/ios-keychain-sharing-data-between-apps/ – leontx 2013-03-08 00:00:15

3

Dan Grisby的most recent mobile orchard podcast推测您也可能使用自定义命名剪贴板来共享应用程序之间的信息。我意识到这是一个较旧的帖子,但我想我会指出这一点,因为它的谷歌搜索结果很高。 :)

(文件还建议,NSUserDefaults可能是有用的在这里,但我read elsewhere那这实际上不是这样的。)

3

一劈我能想到的是writing to and reading from the Address Book,与API,存储数据可用字段(也许为用户图像+ NSData转换)。编辑:我已经成功地在联系人的显示图像内部实现了NSData转换和对象存储,从而使它们无法从联系人应用程序编辑。

5

应用程序可以在iCloud上共享容器目录。

Apple's doc on configuring your iCloud entitlements

icloud的容器字段标识您的应用程序可以在用户的​​iCloud存储访问容器 目录列表。 (该字段对应于 com.apple.developer.ubiquity-container-identifiers权利。)添加到此列表中的 字符串必须对应于由您的团队创建的 应用的程序包标识符。 Xcode使用当前应用程序的包 标识符来指定第一个字符串;如果您希望多个应用程序共享主要的 容器目录,则可以将其更改为 不同的包标识符。您还可以为您的团队的其他应用添加其他捆绑软件标识 。

相关问题