如果我制作了两个 iPhone 应用程序,我如何/应该在它们之间共享自定义数据(不是联系人和类似的东西)?
谢谢!
有两种不同的方法可以解决这个问题。
1)您需要共享的数据是非持久的。换句话说,您需要使用可以执行某些操作的数据来启动一个应用程序。在这种情况下,您将为每个应用程序注册一个特殊的 URL 方案。
您可以通过 Craig Hockenberry 在他的[已编辑] 博客文章中找到有关 URL 方案的更多信息。
2)您需要共享的数据是持久的。换句话说,您需要两个应用程序都可以读取和写入的数据文件之类的东西。据我所知,除了将数据存储在远程服务器上之外,没有安全的方法可以做到这一点。如果您需要在没有数据连接的情况下访问数据,那么您需要找到一种在各个应用程序和远程服务器之间同步数据的方法。
除了已经提到的内容之外,关于代码签名的 iPhone 文档似乎暗示使用相同身份签名的应用程序可以访问相同的 Keychain 项。如果您需要存储相对少量的数据(密码等),这可能是一种有用的技术。
应用程序可以在 iCloud 上共享容器目录。
iCloud Containers 字段标识您的应用程序可以在用户的 iCloud 存储中访问的容器目录列表。(此字段对应于 com.apple.developer.ubiquity-container-identifiers 权利。)您添加到此列表的字符串必须对应于您的团队创建的应用程序的捆绑标识符。Xcode 使用当前应用的包标识符来指定第一个字符串;如果您希望多个应用程序共享一个主容器目录,您可以将其更改为不同的包标识符。您还可以为团队的其他应用程序添加额外的捆绑标识符。
我能想到的一个技巧是使用 API写入和读取 Address Book,将数据存储在可用字段中(可能是用户图像的 NSData 转换)。编辑:我已经成功实现了 NSData 转换和对象在联系人显示图像中的存储,从而使它们无法从联系人应用程序中编辑。