使用 SwiftUI 在 macOS 上阻止 App Sandbox FirebaseApp.configure()
App Sandbox blocking FirebaseApp.configure() on macOS with SwiftUI
我正在为 macOS 和 iOS 编写应用程序。
当我开始我的多平台项目时,我决定看看 Firebase SDK 是否适用于 macOS,因为我之前看到过这个错误:
tvOS and macOS SDK support is not part of the official Firebase product. Instead they are community supported. Details at https://github.com/firebase/firebase-ios-sdk/blob/master/README.md.
我开始配置 Firebase,并且必须创建一个 NSApplicationDelegate 才能在 macOS 上运行:
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(_ notification: Notification) {
FirebaseApp.configure()
}
}
然后我使用 NSApplicationDelegateAdaptor 将这个 AppDelegate 附加到我的@main 应用程序:
@main
struct SchedulerApp: App {
@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
首先用一个简单的打印语句对其进行了测试 - 并且有效。
然后用 FirebaseApp.configure()
测试了它,它抛出了一大堆错误。
Sandbox does not allow access to com.apple.dnssd.service
dnssd_clientstub ConnectToServer: connect() failed path:/var/run/mDNSResponder Socket:4 Err:-1 Errno:1 Operation not permitted
nw_resolver_create_dns_service_locked
Connection 1: received failure notification
Connection 1: failed to connect 10:-72000, reason -1
Connection 1: encountered error(10:-72000)
A server with the specified hostname could not be found.
最后一个包含 URL, https://firebaselogging-pa.googleapis.com/v1/firelog/legacy/batchlog.
从错误代码中,我在网上做了一些挖掘,因为我是macOS开发的新手,所以了解了App Sandbox。然后我尝试在 Signing and Capabilities 中关闭它并再次 运行 项目。
没有错误。工作正常!
我如何允许服务器通过 App Sandbox 连接,因为我确实想在不久的将来发布该应用程序,并希望开始将我的 SwiftUI iOS 应用程序移植到 macOS,因为您无法上传Mac 没有 App Sandbox 的应用商店?
已通过复选框修复
Incoming network connections (server)
和
Outgoing network connections (client)
在目标设置(您可以在其中编辑应用的名称和版本的屏幕)> 签名和功能中。如果您收到一条错误消息,提示您的权利文件夹已被编辑,只需清理构建文件夹即可。
我正在为 macOS 和 iOS 编写应用程序。
当我开始我的多平台项目时,我决定看看 Firebase SDK 是否适用于 macOS,因为我之前看到过这个错误:
tvOS and macOS SDK support is not part of the official Firebase product. Instead they are community supported. Details at https://github.com/firebase/firebase-ios-sdk/blob/master/README.md.
我开始配置 Firebase,并且必须创建一个 NSApplicationDelegate 才能在 macOS 上运行:
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(_ notification: Notification) {
FirebaseApp.configure()
}
}
然后我使用 NSApplicationDelegateAdaptor 将这个 AppDelegate 附加到我的@main 应用程序:
@main
struct SchedulerApp: App {
@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
首先用一个简单的打印语句对其进行了测试 - 并且有效。
然后用 FirebaseApp.configure()
测试了它,它抛出了一大堆错误。
Sandbox does not allow access to com.apple.dnssd.service
dnssd_clientstub ConnectToServer: connect() failed path:/var/run/mDNSResponder Socket:4 Err:-1 Errno:1 Operation not permitted
nw_resolver_create_dns_service_locked
Connection 1: received failure notification
Connection 1: failed to connect 10:-72000, reason -1
Connection 1: encountered error(10:-72000)
A server with the specified hostname could not be found.
最后一个包含 URL, https://firebaselogging-pa.googleapis.com/v1/firelog/legacy/batchlog.
从错误代码中,我在网上做了一些挖掘,因为我是macOS开发的新手,所以了解了App Sandbox。然后我尝试在 Signing and Capabilities 中关闭它并再次 运行 项目。
没有错误。工作正常!
我如何允许服务器通过 App Sandbox 连接,因为我确实想在不久的将来发布该应用程序,并希望开始将我的 SwiftUI iOS 应用程序移植到 macOS,因为您无法上传Mac 没有 App Sandbox 的应用商店?
已通过复选框修复
Incoming network connections (server)
和
Outgoing network connections (client)
在目标设置(您可以在其中编辑应用的名称和版本的屏幕)> 签名和功能中。如果您收到一条错误消息,提示您的权利文件夹已被编辑,只需清理构建文件夹即可。