Я пишу приложение как для macOS, так и для iOS.
Когда я начал свой мультиплатформенный проект, я решил проверить, работают ли SDK Firebase с macOS, потому что я видел эту ошибку раньше:
Поддержка tvOS и macOS SDK не является частью официального продукта Firebase. Вместо этого они поддерживаются сообществом. Подробности на https://github.com/firebase/firebase-ios-sdk/blob/master/README.md.
Я начал настраивать Firebase, и мне пришлось создать NSApplicationDelegate, чтобы он работал в macOS:
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(_ notification: Notification) {
FirebaseApp.configure()
}
}
Затем я прикрепил этот AppDelegate к своему приложению @main с помощью NSApplicationDelegateAdaptor:
@main
struct SchedulerApp: App {
@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Сначала протестировал его с помощью простого оператора печати - и он сработал.
Затем протестировал его с FirebaseApp.configure()
, и он выдал целую кучу ошибок.
Песочница не разрешает доступ к com.apple.dnssd.service
dnssd_clientstub ConnectToServer: connect () сбой путь: / var / run / mDNSResponder Socket: 4 Err: -1 Errno: 1 Операция запрещена
nw_resolver_create_dns_service_locked
Соединение 1: получено уведомление об ошибке
Подключение 1: не удалось подключиться 10: -72000, причина -1
Соединение 1: обнаружена ошибка (10: -72000)
Не удалось найти сервер с указанным именем хоста.
И последний содержал URL, https://firebaselogging-pa.googleapis.com/v1/firelog/legacy/batchlog.
Из кода ошибки я немного покопался в Интернете и, поскольку я новичок в разработке macOS, узнал о песочнице приложения. Затем я попытался отключить его в Signing and Capabilities и снова запустить проект.
Ошибок нет. Сработало нормально!
Как разрешить серверу подключаться через App Sandbox, потому что я действительно хочу опубликовать приложение в ближайшем будущем и хочу начать переносить мое приложение SwiftUI iOS на macOS, поскольку вы не можете загрузить приложение в магазин приложений Mac без приложения Песочница?