расширение приложения safari падает через несколько секунд для проекта hello world - PullRequest
0 голосов
/ 11 октября 2018
  1. открыть xcode

  2. файл> новый> проект> приложение Какао

  3. файл> новый> цель> сафарирасширение

  4. скомпилируйте и запустите расширение

  5. выберите сафари.

  6. xcode компилируется без ошибок.

Safari открывается на несколько секунд, затем вылетает.

Это вывод окна отладки.

2018-10-1015: 27: 18.039905-0700 Safari [1020: 16719] [SQLiteStore] Не удалось получить блокировку координации хранилища базы данных в / Users // Библиотека / Safari / Кэш Favicon / favicons.db-lock: [35: Ресурс временно недоступен] 2018-10-10 15: 27: 18.040155-0700 Safari [1020: 16719] [SQLiteStore] Не удалось получить эксклюзивный доступ к базе данных в файле: ///Users//Library/Safari/Favicon%20Cache/favicons.db.2018-10-10 15: 27: 18.041141-0700 Safari [1020: 16719] [SQLiteStore] Не удалось получить блокировку координации хранилища базы данных в / Users // Библиотека / Safari / Favicon Cache / favicons.db-lock: [35: Ресурсвременно недоступно] 2018-10-10 15: 27: 18.041226-0700 Safari [1020: 16719] [SQLiteStore] Не удалось получить эксклюзивный доступ к базе данных в файле: /// Пользователи // Библиотека / Safari / Favicon% 20Cache / favicons.дб.2018-10-10 15: 27: 18.041331-0700 Safari [1020: 16719] [SQLiteStore] Откат к хранилищу в памяти 2018-10-10 15: 27: 18.042877-0700 Safari [1020: 16719] [FaviconPersistence]Использование представления в памяти для базы данных / Пользователи // Библиотека / Safari / Favicon Cache / favicons.db 2018-10-10 15: 27: 18.125466-0700 Safari [1020: 16771] [SQLiteStore] Не удалось получить блокировку координации хранилища базы данных в/Users//Library/Caches/com.apple.Safari/TabSnapshots/Metadata.db-lock: [35: ресурс временно недоступен] 2018-10-10 15: 27: 18.125660-0700 Safari [1020: 16771] [SQLiteStore]Не удалось получить эксклюзивный доступ к базе данных в файле: ///Users//Library/Caches/com.apple.Safari/TabSnapshots/Metadata.db.2018-10-10 15: 27: 18.235987-0700 Safari [1020: 16718] flock не удалось заблокировать файл карт: errno = 35 2018-10-10 15: 27: 18.236343-0700 Safari [1020: 16718] flock не удалось заблокироватьфайл карт: errno = 35 2018-10-10 15: 27: 18.293614-0700 Safari [1020: 16718] Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на AutoFillCorrections.db.Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на AutoFillCorrections.db.2018-10-10 15: 27: 18.299481-0700 Safari [1020: 16718] Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на CloudAutoFillCorrections.db.Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на CloudAutoFillCorrections.db.2018-10-10 15: 27: 18.300530-0700 Safari [1020: 16718] Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на AutoFillCorrections.db.Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на AutoFillCorrections.db.2018-10-10 15: 27: 18.304153-0700 Safari [1020: 16718] Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на CloudAutoFillCorrections.db.Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на CloudAutoFillCorrections.db.2018-10-10 15: 27: 18.620185-0700 Safari [1020: 16763] Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на AutoFillCorrections.db.Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на AutoFillCorrections.db.2018-10-10 15: 27: 18.623032-0700 Safari [1020: 16773] [CrowdsourcedAutoFill] Невозможно прочитать наборы исправлений автозаполнения облака, ошибка: Ошибка Domain = NSCocoaErrorDomain Code = 260 "Файл не может быть открыт, поскольку он не 'не существует ".2018-10-10 15: 27: 18.629453-0700 Safari [1020: 16763] Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на CloudAutoFillCorrections.db.Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite в CloudAutoFillCorrections.db.2018-10-10 15: 27: 18.675086-0700 Safari [1020: 16765] [CloudBookmarks] Ошибка при получении состояния удаленной миграции: Ошибка Domain = com.apple.SafariBookmarksSync.CloudBookmarksErrorDomain Code = 0 "(null)" 2018-10-1015: 27: 18.771588-0700 Safari [1020: 16718] [RemotePlistController] Загруженный plist не может быть загружен: Ошибка Domain = NSCocoaErrorDomain Code = 260 "Файл не может быть открыт, потому что он не существует."2018-10-10 15: 27: 19.161007-0700 Safari [1020: 16773] Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на AutoFillCorrections.db.Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на AutoFillCorrections.db.2018-10-10 15: 27: 19.167933-0700 Safari [1020: 16773] Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на CloudAutoFillCorrections.db.Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на CloudAutoFillCorrections.db.2018-10-10 15: 27: 19.279743-0700 Safari [1020: 16763] [RemotePlistController] Не удалось загрузить скачанный plist: Ошибка Domain = NSCocoaErrorDomain Code = 260 "Файл не может быть открыт, поскольку он не существует«.2018-10-10 15: 27: 20.064438-0700 Safari [1020: 16763] Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на AutoFillCorrections.db.Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на AutoFillCorrections.db.2018-10-10 15: 27: 20.081337-0700 Safari [1020: 16763] Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на CloudAutoFillCorrections.db.Не удалось получить эксклюзивный доступ к хранилищу исправлений автозаполнения SQLite на CloudAutoFillCorrections.db.2018-10-10 15: 27: 20.084003-0700 Safari [1020: 16763] [CrowdsourcedAutoFill] Невозможно открыть ни локальные, ни облачные базы данных коррекции классификации. Программа завершилась с кодом выхода: 0

Япопытался перезагрузить компьютер.

Я попытался очистить проект.

Я попытался удалить метаданные с помощью

xatter -cr .

Я попробовал все три сразу.

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Отладчик XCode имеет тенденцию убивать процесс расширения, если он не получает никаких событий от сценария контента.По моим наблюдениям, это совершенно нормально, и в работе ваше приложение не умрет так легко.

Чтобы обойти это поведение, вы можете добавить этот фрагмент в script.js:

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

Это заставит контентный скрипт отправлять сообщение с именем «ping» на расширение каждую секунду.Этого должно быть достаточно, чтобы сохранить ваше расширение.Опять же, это действительно нужно только для отладки, вашей производственной сборке не понадобится эта линия для надежной работы.

Имейте в виду, что по умолчанию скрипты содержимого внедряются только на страницах * .webkit.org.Это определяется значением свойства SFSafariToolbarItem в файле Info.plist вашего расширения.В целях тестирования вы можете включить расширение на всех веб-сайтах, например:

<key>SFSafariWebsiteAccess</key>
<dict>
  <key>Level</key>
  <string>All</string>
</dict>

Будьте осторожны, скрипт содержимого не вставляется в пустую вкладку, поэтому обязательно загрузите удаленную страницу.

0 голосов
/ 01 ноября 2018

При первом запуске вы должны выбрать цель приложения Какао и только после этого запустить расширение.Пожалуйста, попробуйте сначала скомпилировать и запустить приложение и скажите, помогло ли оно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...