Подтвердить что ты не робот

Почему arent расширяет приложение Safari для приложений NSLog, появляющееся на консоли в Xcode?

Im после Руководство по использованию Apple Safari для приложений. Короче говоря, Ive:

  • Создал новый проект Xcode (в Xcode 8.1, на macOS 10.12 Sierra) с использованием шаблона Cocoa
  • Создана новая цель в приложении с использованием шаблона расширения Safari
  • Запустите приложение один раз, чтобы убедиться, что расширение приложения Safari создано
  • Выбрал опцию "Разрешить неподписанные расширения" в меню "Настройка Safari"
  • Включить расширение в панели предпочтений Safaris Extensions

В Safari появится кнопка панели расширения. Ярлык говорит, что я должен увидеть сообщение NSLog в консоли, когда я нажимаю кнопку на панели инструментов, но я ничего не вижу.

Ive отредактировал SafariExtensionHandler.swift, чтобы отправить сообщение в script, введенное расширением:

override func toolbarItemClicked(in window: SFSafariWindow) {
    // This method will be called when your toolbar item is clicked.
    NSLog("The extension toolbar item was clicked")

    window.getActiveTab(completionHandler: { (activeTab) in
        activeTab?.getActivePage(completionHandler:  { (activePage) in
            activePage?.dispatchMessageToScript(withName: "toolbarItemClicked", userInfo: nil)

        })
    })
}

И Ive отредактировал введенный script (script.js), чтобы предупредить это сообщение:

safari.self.addEventListener("message", function (event) {
    alert("We got a message from the extension! - " + event.name + ": " + event.message);
});

Предупреждение появляется, когда я нажимаю кнопку на панели инструментов (когда Im на странице на webkit.org, так как Ive оставил в настройках SFSafariWebsiteAccess по умолчанию), поэтому расширение работает и регистрирует щелчок. Но я не вижу NSLog в консоли Xcodes или в приложении консоли.

Im реальный новичок Xcode, поэтому Im Im Im пропустил что-то очевидное - но почему сообщение NSLog не появляется на консоли?

(Я не запускаюсь как администратор, в случае, если это имеет значение, хотя я и вводил данные учетной записи администратора каждый раз, когда меня просили при запуске Xcode в первый раз. Я замечаю, что в приложении консоли, когда я выберите system.log, я просто вижу сообщение "Невозможно прочитать файл". Этот может быть связан с тем, что он не работает как администратор).

4b9b3361

Ответ 1

Перейдите к схеме для вашего расширения (схемы находятся справа от кнопок "Выполнить" и "Стоп" ), а затем нажмите "Выполнить".

Всплывающее окно попросит вас выбрать приложение для запуска: выберите Safari.

Новый экземпляр Safari должен быть открыт, и вы начнете видеть выход журнала в консоли Xcode.

Если вы еще не подписали свое приложение и расширение, Safari отклонит ваше расширение, и на консоли появится сообщение типа

2017-04-12 13:00:44.799843-0400 Safari[37188:2787364] [Extensions] 
Computing the code signing dictionary failed for extension with 
identifier com.your.app.extension
2017-04-12 13:00:44.799865-0400 Safari[37188:2787364] [Extensions] 
Disabling and blocking extension with identifier: 
com.your.app.extension

В этом случае вам просто нужно переустановить "Разрешить неподписанные расширения" в меню "Разработчик Safari" и включить расширение в панели "Настройки", после чего вам будет хорошо идти.