6

如何在同一设备上具有不同团队 ID 的两个应用之间私下共享数据?我们过去是通过粘贴板来做到这一点的,但是在 iOS7 中要使用特定于应用程序的粘贴板,它们现在必须具有相同的团队 ID。

我们试图解决的问题是如果用户购买了另一个应用程序,则解锁一个应用程序中的功能。我们希望这在后台安静地发生(因此最初使用特定于应用程序的粘贴板),但具有一些安全性以防止用户欺骗进程和解锁功能。

我们正在研究的一种方法是使用系统粘贴板,但使用设备特定密钥加密数据。只要两个应用程序使用相同的算法来生成密钥,这应该可以工作,但是问题就变成了如何生成应用程序特定的密钥。

任何有关启用此类功能解锁方案的最佳方式的建议/指导都会非常有帮助。

4

1 回答 1

11

我也使用粘贴板在应用程序之间发送数据。对于在应用程序之间发送中等大小的数据来说,它是一个非常有用的工具。实际上,我不久前就该主题写了一篇博客文章。

不幸的是,正如您所指出的,私有粘贴板仅适用于在其应用程序 ID 中共享相同前缀的应用程序。这通常是团队 ID,但如果您的应用可以追溯到您可以使用不同的捆绑种子标识符时,则可能会有所不同。

如果您在具有不同前缀的应用程序之间共享中等数量的私有数据,则需要使用不同的解决方案。在这种情况下,我建议使用某种形式的加密并使用通用粘贴板来传输数据。根据数据的敏感性,即使使用私人粘贴板,加密数据也可能是一个好主意。Rob Napier 有一个很好的库,可以让加密和解密变得非常简单。

或者,如果您的数据相当小,您可能会考虑将数据编码为 URL 并使用 URL 方案将数据移动到其他应用程序中。

于 2013-10-30T13:16:15.843 回答