8

当我构建其中包含 Safari 扩展的 macOS 应用程序时,我在 Safari 上运行它,它在运行几秒钟后崩溃(尽管它确实出现在扩展中)。

这似乎是 Safari 试图从本地 Library 文件夹中获取数据的问题。它似乎也与 Info.plist 斗争

这是崩溃日志:

2018-08-02 17:33:47.464379+0200 Safari[14693:1179568] [default] Unable to load Info.plist exceptions (eGPUOverrides)
2018-08-02 17:33:47.487993+0200 Safari[14693:1179565] [SQLiteStore] Failed to acquire database store coordination lock at /Users/lukasmuller/Library/Safari/Favicon Cache/favicons.db-lock: [35: Resource temporarily unavailable]
2018-08-02 17:33:47.488150+0200 Safari[14693:1179565] [SQLiteStore] Failed to acquire exclusive access to database at file:///Users/lukasmuller/Library/Safari/Favicon%20Cache/favicons.db.
2018-08-02 17:33:47.488580+0200 Safari[14693:1179565] [SQLiteStore] Failed to acquire database store coordination lock at /Users/lukasmuller/Library/Safari/Favicon Cache/favicons.db-lock: [35: Resource temporarily unavailable]
2018-08-02 17:33:47.488615+0200 Safari[14693:1179565] [SQLiteStore] Failed to acquire exclusive access to database at file:///Users/lukasmuller/Library/Safari/Favicon%20Cache/favicons.db.
2018-08-02 17:33:47.488694+0200 Safari[14693:1179565] [SQLiteStore] Falling back to an in-memory store
2018-08-02 17:33:47.489617+0200 Safari[14693:1179565] [FaviconPersistence] Using in-memory representation for database /Users/lukasmuller/Library/Safari/Favicon Cache/favicons.db
2018-08-02 17:33:47.505346+0200 Safari[14693:1179572] [SQLiteStore] Failed to acquire database store coordination lock at /Users/lukasmuller/Library/Containers/com.apple.Safari/Data/Library/Caches/com.apple.Safari/TabSnapshots/Metadata.db-lock: [35: Resource temporarily unavailable]
2018-08-02 17:33:47.505870+0200 Safari[14693:1179572] [SQLiteStore] Failed to acquire exclusive access to database at file:///Users/lukasmuller/Library/Containers/com.apple.Safari/Data/Library/Caches/com.apple.Safari/TabSnapshots/Metadata.db.
2018-08-02 17:33:47.572816+0200 Safari[14693:1179583] flock failed to lock maps file: errno = 35
2018-08-02 17:33:47.573799+0200 Safari[14693:1179583] flock failed to lock maps file: errno = 35
2018-08-02 17:33:47.604115+0200 Safari[14693:1179588] Failed to acquire exclusive access to AutoFill corrections SQLite store at AutoFillCorrections.db.
Failed to acquire exclusive access to AutoFill corrections SQLite store at AutoFillCorrections.db.
2018-08-02 17:33:47.607520+0200 Safari[14693:1179588] Failed to acquire exclusive access to AutoFill corrections SQLite store at CloudAutoFillCorrections.db.
Failed to acquire exclusive access to AutoFill corrections SQLite store at CloudAutoFillCorrections.db.
2018-08-02 17:33:47.608239+0200 Safari[14693:1179588] Failed to acquire exclusive access to AutoFill corrections SQLite store at AutoFillCorrections.db.
Failed to acquire exclusive access to AutoFill corrections SQLite store at AutoFillCorrections.db.
2018-08-02 17:33:47.609424+0200 Safari[14693:1179588] Failed to acquire exclusive access to AutoFill corrections SQLite store at CloudAutoFillCorrections.db.
Failed to acquire exclusive access to AutoFill corrections SQLite store at CloudAutoFillCorrections.db.
2018-08-02 17:33:47.857619+0200 Safari[14693:1179579] Failed to acquire exclusive access to AutoFill corrections SQLite store at AutoFillCorrections.db.
Failed to acquire exclusive access to AutoFill corrections SQLite store at AutoFillCorrections.db.
2018-08-02 17:33:47.859043+0200 Safari[14693:1179565] [CrowdsourcedAutoFill] Unable to read cloud AutoFill correction sets, error: Error Domain=NSCocoaErrorDomain Code=260 "The file couldn’t be opened because it doesn’t exist."
2018-08-02 17:33:47.859839+0200 Safari[14693:1179579] Failed to acquire exclusive access to AutoFill corrections SQLite store at CloudAutoFillCorrections.db.
Failed to acquire exclusive access to AutoFill corrections SQLite store at CloudAutoFillCorrections.db.
2018-08-02 17:33:47.871122+0200 Safari[14693:1179640] [CloudBookmarks] Error fetching remote migration state: Error Domain=com.apple.SafariBookmarksSync.CloudBookmarksErrorDomain Code=0 "(null)"
2018-08-02 17:33:47.953061+0200 Safari[14693:1179640] [RemotePlistController] The downloaded plist could not be loaded: Error Domain=NSCocoaErrorDomain Code=260 "The file couldn’t be opened because it doesn’t exist."
2018-08-02 17:33:48.191583+0200 Safari[14693:1179568] [trace] RWIMobileDeviceConnection (Direct): Unable to start a session: The host is not paired with the device.
2018-08-02 17:33:48.202902+0200 Safari[14693:1179568] [trace] RWIMobileDeviceConnection (Direct): Unable to stop session: The session is inactive.
2018-08-02 17:33:48.234006+0200 Safari[14693:1179572] Failed to acquire exclusive access to AutoFill corrections SQLite store at AutoFillCorrections.db.
Failed to acquire exclusive access to AutoFill corrections SQLite store at AutoFillCorrections.db.
2018-08-02 17:33:48.235327+0200 Safari[14693:1179572] Failed to acquire exclusive access to AutoFill corrections SQLite store at CloudAutoFillCorrections.db.
Failed to acquire exclusive access to AutoFill corrections SQLite store at CloudAutoFillCorrections.db.
2018-08-02 17:33:52.195337+0200 Hockey Crahses to Jira[14702:1180067] [default] Unable to load Info.plist exceptions (eGPUOverrides)
2018-08-02 17:30:28.465503+0200 Hockey Crashes to Jira[14575:1165922] [default] Unable to load Info.plist exceptions (eGPUOverrides)
2018-08-02 17:30:43.565677+0200 Hockey Crashes to Jira[14575:1165922] [default] Unable to load Info.plist exceptions (eGPUOverrides)

有没有人遇到过类似的问题并想出了解决方法?

4

3 回答 3

4

我有同样的(随机)问题。清理项目(产品/清理)和构建文件夹(产品/清理菜单上的 Alt)后,问题似乎消失了

但是消息“[default] Unable to load Info.plist exceptions (eGPUOverrides)”仍然存在......它似乎并不相关,因为一切正常。

我为 Safari App Extensions 开发者创建了一个 Slack 社区,欢迎您加入我们:https ://slofile.com/slack/safariappextdevs

于 2018-08-29T10:25:23.543 回答
0

基本上,您正在尝试在设备上运行它。例如,如果您希望在 iOS 设备上运行 iOS 应用程序,则需要配置文件。同样,如果您希望在 macOS 设备上运行 macOS 应用程序,您必须为其设置配置文件。

  • 选择项目,选择主要目标,确保您已设置配置文件,团队。
  • 还为 safari 扩展目标设置配置文件。
  • 完成设置后,运行 safari 扩展程序。
  • 转到 Safari 偏好设置、扩展选项卡并启用您的扩展。

希望有帮助。干杯。

于 2018-08-19T22:52:34.703 回答
0

所以,显然:

如果在一段时间内没有发现交互/消息,Xcode 调试器会终止浏览器。

因此,为避免这种情况,您必须在注入的脚本中编写该代码:

setInterval(() => safari.extension.dispatchMessage("ping", {}), 1000);

我写的这篇文章解释了开发 Safari App Extensions 时遇到的常见问题

于 2020-04-24T11:39:48.513 回答