我正在尝试向现有应用添加其他“打开方式”功能。我找到了一种在应用程序捆绑包内的Info.plist中添加必要的CFBundleDocumentTypes的方法。现在,我唯一的问题是让iOS注册该密钥以允许其他应用程序“打开”。我假设重启后,iOS将检查所有已安装的应用程序的Info.plist文件并在加载时注册CFBundleDocumentTypes。不是这种情况。看来,如果我使用编辑的Info.plist创建IPA并将其安装在我的设备上,则“Open In”会在整个iOS中自动注册。

我在这里没有多大帮助。 Can you dynamically assign CFBundleDocumentTypes to your Cocoa application?

我检查了/var/mobile/Library/Caches/com.mobile.installation.plist我注意到Info.plist中的某些键在com.mobile.installation.plist

例如; UIDeviceFamily, UIBackgroundModes, UIRequiredDeviceCapibilities,但没有CFBundleDocumentTypes
有人知道我还能去哪里吗?必须有使用 private 框架来做到这一点的方法。 (因为这是为了越狱开发)

最佳答案

好吧,我发现了一些重新加载CFBundleDocumentTypes的技巧

如果可以访问,请删除文件:

/var/mobile/Library/Caches/com.apple.LaunchServices-054.csstore

然后告诉用户重新启动,如果重新完成,则您将删除文件并再次重新启动。 (由于com.apple.LaunchServices-054.csstore文件在重新产生后返回。)

希望这能对越狱社区中的某个人有所帮助。

注意,我认为这种方法仅适用于iOS7。 :(

关于ios - 您可以动态分配CFBundleDocumentTypes(使用私有(private)API吗?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21733629/

10-09 02:41