[英]Can a Mac Catalyst app manage a different iOS firestore database? If so how to config it
如何将 Mac Catalyst 应用程序指向另一个 firestore 区域,以便 2 个编辑器用户可以轻松地从他们的笔记本电脑管理他们的数据?
背景:我有一个使用 Google Firestore 数据库的功能齐全的 iOS 应用程序。 一些用户是编辑,但目前必须选择图像和 mp3,然后在手机上以编辑模式从应用程序上传这些内容。 这不是很有效。
问题:我看到很多 Mac Catalyst stackoverflow 问题与获取 iOS/iPad 代码和 firebase 一起工作。 Google 的 Firebase 尚不支持 Mac Catalyst。
谢谢
固定的
我有一组步骤可以解决创建 Mac 应用程序以编辑另一个 firebase 数据库的问题。 最后,您可以启动 zip 并将应用程序发送给另一个 mac 用户运行。
1.创建一个新的 XCode 项目 - 这里称为 tryMacCatalyst。
2.勾选Mac框并点击出现的启用按钮。 然后在Mac上运行确认。 然后关闭项目添加PODS。
3.从项目的命令行做通常的初始化一个pod项目。
pod init
打开 XCode 中的 xcworkspace,并在“我的 Mac”上运行以测试这些库的构建。
现在将目标 firebase 安装中的“GoogleService-Info.plist”复制到项目中。 它应该看起来像这样:
事实证明,您可以在此处交换任何 Google-Service-Info 文件以指向任何 Firebase DB。
签署“gRPC-C++-gRPCCertificates-Cpp”需要开发团队。 Select Signing & Capabilities 编辑器中的开发团队。
11.将代码添加到 ViewController 以测试连接:运行,您应该在日志中看到“firebase auth checked - no user””
import FirebaseAuth
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if Auth.auth().currentUser == nil {
print("firebase auth checked - no user")
}else{
print("firebase auth checked - we have a user")
}
}
}
12.添加代码到 ViewController 以测试与 Firebase Auth 的连接:
import FirebaseAuth
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if Auth.auth().currentUser == nil {
print("firebase auth checked - no user")
Auth.auth().signInAnonymously { (authResult, err) in
if let err = err {
print("Cannot login in anon - something bad happened ")
print(err)
}else{
if let user = authResult?.user {
print(user.uid)
}
}
}
}else{
print("firebase auth checked - we have a user")
}
}
}
当你运行它时,你会得到一个错误:
访问钥匙串时出错。
再次运行,它应该可以使用显示如下内容的日志:
gvMPr3Z7Aoh6tOA4lo1S3r9abcde
这是匿名用户标识。 如果您将 go 转到 Firebase 控制台身份验证部分,则此 uid 将存在。 现在,所有 firestore 命令都可以使用。 有最后一步,因为如果我们尝试存档,它将失败。
存档给出错误:
ssl_transport_security.h:29:12:在框架“openssl_grpc”中未找到 header“x509.h”
为了解决这个问题,我们使用 zummenix 在 github 上给出的众所周知的答案: zummenix answer github 链接
步骤如下:
创建一个 mac sh 文件“runBORINGSSLPatch.sh”并使用以下内容(更改 <YOUR_MAC_LOGON_NAME> 和 <PROJECT_NAME>):
# This works # CD to <PROJECT_NAME> folder # 1. run using command line #./runBoringSSLPatch.sh # 2. then do archive - distribute directly to customers - Export # 3. Ctrl/C to stopscript # # script is at: # https://github.com/grpc/grpc/issues/20500 while true; do sleep 0.1 _boring_ssl=$(find /Users/<YOUR_MAC_LOGON_NAME>/Library/Developer/Xcode/DerivedData/<PROJECT_NAME>* \ -name "BoringSSL-GRPC" | head -n1) cd "$_boring_ssl/openssl_grpc.framework" && ln -s Versions/Current/Headers Headers && echo "Patched openssl_grpc" _grpc_core=$(find /Users/<YOUR_MAC_LOGON_NAME>/Library/Developer/Xcode/DerivedData/<PROJECT_NAME>* \ -name "gRPC-Core" | head -n1) cd "$_grpc_core/grpc.framework" && ln -s Versions/Current/Headers Headers && echo "Patched grpc" done
使用以下命令运行此文件:
./runBoringSSLPatch.sh
再次存档 - 它应该可以工作。 现在“分发应用程序”、开发者 ID、导出。 然后将该文件夹发送给另一个用户。
CTRL-C runBoringSSLPatch 程序。
谢谢
约翰古德施塔特
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.