【发布时间】:2010-01-11 09:09:43
【问题描述】:
是否可以在由同一开发者签名的两个不同 iPhone 应用程序之间共享核心数据存储?我想开发一个应用程序,其中一个 iPhone 应用程序将保存数据流,然后可以由另一个应用程序读取。这甚至可能吗?非常感谢!
【问题讨论】:
标签: iphone objective-c iphone-sdk-3.0 core-data
是否可以在由同一开发者签名的两个不同 iPhone 应用程序之间共享核心数据存储?我想开发一个应用程序,其中一个 iPhone 应用程序将保存数据流,然后可以由另一个应用程序读取。这甚至可能吗?非常感谢!
【问题讨论】:
标签: iphone objective-c iphone-sdk-3.0 core-data
不,这是不可能的。 iPhone 应用程序在沙箱中运行,但无法访问其他应用程序数据存储。
编辑:
在这里阅读其他答案后:是的,自定义 URL 是可能的。是的,可以使用它传输数据,但是,我认为,我不建议使用此程序传输超过 5kb 的数据。没有故障保护:没有交易也没有关系。
【讨论】:
现在在带有 iCloud 的 iOS 5 中,您可以使用相同的 iCloud URL 注册这两个应用程序。在第二个应用程序初始化时,第一个应用程序的核心数据存储或多/少地复制到第二个应用程序中。这可能需要一段时间——因此您需要在后台线程中启动持久存储控制器,否则您的应用程序将被看门狗计时器杀死。
但是,有一些注意事项。
它似乎不能完全正常工作。核心数据数据库中的一些记录似乎没有被复制。根据我的经验,哪些记录没有成功似乎是随机的。也许它与原始商店的一致性有关。
之后,这些应用似乎并没有保持同步,这与两个不同 iDevice 上的同一个应用相反。
调试有点麻烦,因为从一个 iDevice 的更改转移到另一个 iDevice 需要 10--20 秒,而且显然是无限期地从同一 iDevice 上的一个应用更改到另一个注册的应用相同的 iCloud URL。
总而言之——您可以在第二个应用程序的初始化时使用 iCloud 复制大多数记录,但很难使它们保持同步。
【讨论】:
这可以在 iphone 上使用自定义 url 方案来完成,但有一些注意事项。
如果您使用自定义 url 方案,则只有一个应用“拥有”数据。另一个应用程序必须从主应用程序导入数据...Mobile Orchard 对此做了一篇文章,用于将数据从轻量级应用程序移动到付费应用程序
但我最近遇到了一个名为“SwapKit”的 MIT 许可库,它可能也可以完全完成您想要的操作...从他们网站上的概述中听起来不错,尽管我没有尝试过它:
http://infinite-labs.net/swapkit/
这可能会或可能不会有任何帮助,但也请查看“SpyPhone”:
SpyPhone 显示的数据类型 流氓应用程序可以收集非 越狱的 iPhone。
【讨论】:
您可以使用自定义 URL 方案将数据发送到第二个应用程序。
-t
【讨论】:
还有系统粘贴板(我认为是 NSPasteboard 什么的,现在没时间检查)基本上是剪贴板。我认为你可以在上面放一些东西,然后启动另一个应用程序,其 URL 告诉另一个应用程序检查粘贴板。
【讨论】: