Podążam za Apple’s guide for creating a Safari App Extension. Krótko mówiąc, mam:Dlaczego moje komunikaty NSLog rozszerzenia aplikacji Safari nie są wyświetlane w konsoli Xcode?
- Utworzono nowy projekt Xcode (w Xcode 8.1 na MacOS 10.12 Sierra) przy użyciu szablonu kakao Application
- Utworzono nowy cel w aplikacji za pomocą szablonu Safari Extension
- Uruchom aplikację raz, aby upewnić się, że rozszerzenie Safari App jest zbudowany
- Wybrano opcję „zezwalaj na niepodpisane Extensions” w Safari Develop menu
- umożliwiło rozszerzenie w rozszerzeniach safari w panelu preferencji
Przycisk paska narzędziowego rozszerzenia pojawia się w Safari. Przewodnik Apple mówi, że powinienem zobaczyć komunikat NSLog w konsoli po kliknięciu przycisku paska narzędzi, ale nic nie widzę.
Mam edytowany SafariExtensionHandler.swift aby wysłać wiadomość do skryptu wtryskiwanego przez rozszerzenie:
override func toolbarItemClicked(in window: SFSafariWindow) {
// This method will be called when your toolbar item is clicked.
NSLog("The extension's toolbar item was clicked")
window.getActiveTab(completionHandler: { (activeTab) in
activeTab?.getActivePage(completionHandler: { (activePage) in
activePage?.dispatchMessageToScript(withName: "toolbarItemClicked", userInfo: nil)
})
})
}
A ja redagował wstrzykuje skrypt (script.js) ostrzega, że wiadomość:
safari.self.addEventListener("message", function (event) {
alert("We got a message from the extension! - " + event.name + ": " + event.message);
});
Alert pojawia się po kliknięciu przycisku na pasku narzędzi (gdy jestem na stronie na webkit.org, tak jak pozostawiłem w domyślnych ustawieniach SFSafariWebsiteAccess), więc rozszerzenie działa i rejestruje kliknięcie. Ale nie widzę NSLog w konsoli Xcode ani w aplikacji Console.
Jestem prawdziwym nowicjuszem Xcode, więc jestem pewien, że brakuje mi czegoś oczywistego - ale dlaczego w konsoli nie pojawia się komunikat NSLog?
(Nie uruchamiam się jako administrator, w przypadku, gdy robi różnicę - mimo że wprowadziłem dane konta administratora za każdym razem, gdy poproszono mnie o uruchomienie Xcode po raz pierwszy. Zauważyłem, że w aplikacji Console , kiedy wybiorę system.log, widzę komunikat "Nie można odczytać pliku". To might be related to not running as an administrator.)
Dzięki temu minęło dużo czasu, zanim zobaczyłem twoją odpowiedź :) – Simcha
Czy istnieje sposób, aby wybrać Safari na zawsze jako aplikację do uruchomienia? – ZedTuX