我正在尝试向现有应用添加额外的“打开方式”功能。我找到了一种将必要的 CFBundleDocumentTypes
添加到应用程序包中的 Info.plist 的方法。现在我唯一的问题是让 iOS 注册此 key 以允许从其他应用程序“打开”。我假设在重新启动后 iOS 会检查所有已安装应用程序的 Info.plist 文件并在加载时注册 CFBundleDocumentTypes
。不是这种情况。似乎如果我使用编辑后的 Info.plist 创建一个 IPA 并将其安装在我的设备上,“打开方式”会在整个 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/