iOS7 中缺少 safari history.plist 文件
Posted
技术标签:
【中文标题】iOS7 中缺少 safari history.plist 文件【英文标题】:safari history.plist file missing in iOS7 【发布时间】:2014-10-08 07:20:42 【问题描述】:我想以编程方式访问 safari 历史文件,在这里解决了几个问题后,我发现 safari 历史存储在以下路径:/var/mobile/Library/Safari/History.plist
,但我看不到 History.plist 文件,只有 safari 书签相关文件存在于 Safari 目录中。
History.plist 文件是否已移动到 ios7 中的其他路径。 我已经使用 iFile 在越狱的 iPhone 5S(iOS 7.1.1) 和 iPhone 5C(iOS 7.1.2) 上进行了检查。
【问题讨论】:
【参考方案1】:你可以去:
/var/mobile/Applications/-safari app identifier-/Library/Safari/History.plist
要查找 safari(或任何其他系统/用户应用程序)的完整路径,您可以查看名为 com.apple.mobile.installation.plist
的 plist。该文件位于/var/mobile/Library/Caches/com.apple.mobile.installation.plist
。这个 plist 文件包含我们想要的。 plist 如下所示:
-Root
...
+System (Dictionary)
+User (Dictionary)
...
Safari 是一个系统应用程序,因此在系统字典中我们可以看到一个名为com.apple.mobilesafari
的键,它也是字典的键。这个字典包含一个键控为Path
的字符串,这就是你想要的。如您所见,通过了解应用程序类型和捆绑标识符,可以知道任何其他应用程序的路径。所以你的代码应该是这样的:
- (NSString*) safariPath
return [self applicaitonFullPath:@"com.apple.mobilesafari" appType:@"System"];
- (NSString*) applicaitonFullPath:(NSString*)bundleIdentifier appType:(NSString*)appType
//appType shoud be `System` or `User` case sensitive!!
NSDictionary *mobileInstallationDict = [NSDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Caches/com.apple.mobile.installation.plist"];
return mobileInstallationDict[appType][bundleIdentifier][@"Path"];
【讨论】:
非常感谢 Hamed,这是一个很好的解释和解决方案对我有用。 不知道为什么我的更改被拒绝,但我仍然想提一下 bindleIdentifier 应该是 bundleIdentifier ,而不是使用 [type] 键应该是 [appType]。 @user3932883 感谢您提到的编辑。我纠正了他们:) 发现文件 com.apple.mobile.installation.plist 不再存在 iOS 8 及更高版本:( theiphonewiki.com/wiki/Com.apple.mobile.installation.plist【参考方案2】:检查此路径:
/private/var/mobile/Applications/Library/Safari/History.plist
【讨论】:
谢谢,我得到了 History.plist 文件,但问题是路径是 /var/mobile/Applications//Library/Safari/History.plist;并且这个应用程序标识符在不同的 iphone 中是不同的;在这种情况下,我如何在我的代码中硬编码路径,因为这个路径取决于应用程序标识符。 你不能。您必须在应用程序中动态创建路径。您能否将答案标记为已接受;)? 谢谢,请问您能否告诉我如何动态获取此路径,或者我可以直接使用您列出的路径吗? 请告诉我动态获取此路径的代码 抱歉,这是建议,但没有代码,现在没有时间编写它。在 google 上查看如何检索库的路径。以上是关于iOS7 中缺少 safari history.plist 文件的主要内容,如果未能解决你的问题,请参考以下文章
来自蓝牙键盘的 IOS7 上 Safari 中的 onkeyup 事件