Песочница приложения, блокирующая FirebaseApp.configure () в macOS с помощью SwiftUI

Я пишу приложение как для 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 без приложения Песочница?


person Tahmid Azam    schedule 14.11.2020    source источник


Ответы (1)


Исправлено, установив флажок

Входящие сетевые подключения (сервер)

а также

Исходящие сетевые подключения (клиент)

в целевых настройках (экран, на котором вы можете изменить название и версию своего приложения) ›Подпись и возможности. Если вы получаете сообщение об ошибке, что ваша папка с правами была отредактирована, просто очистите папку сборки.

person Tahmid Azam    schedule 14.11.2020
comment
Интересно, как это сделать в Xcode 13b1. - person Rick; 21.06.2021