繁体   English   中英

Mac Catalyst 应用程序可以管理不同的 iOS firestore 数据库吗? 如果是的话怎么配置

[英]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。

XCode 设置

3.从项目的命令行做通常的初始化一个pod项目。

pod init
  1. 编辑 podfile 使其看起来像这样:

在此处输入图像描述

  1. 运行 pod 安装: 在此处输入图像描述

  2. 打开 XCode 中的 xcworkspace,并在“我的 Mac”上运行以测试这些库的构建。

  3. 现在将目标 firebase 安装中的“GoogleService-Info.plist”复制到项目中。 它应该看起来像这样:

在此处输入图像描述

事实证明,您可以在此处交换任何 Google-Service-Info 文件以指向任何 Firebase DB。

  1. 构建应用程序。 它会报错:

签署“gRPC-C++-gRPCCertificates-Cpp”需要开发团队。 Select Signing & Capabilities 编辑器中的开发团队。

  1. 因此,在 XCode 中突出显示 PODS 文件夹,如下所示: 并设置团队。

在此处输入图像描述

  1. 现在添加一些 swift 代码,FirebaseApp.configure 到 AppDelegate:

在此处输入图像描述

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")
    }
}

}

当你运行它时,你会得到一个错误:

访问钥匙串时出错。

  1. 只需将 go 修复到 XCode 项目/签名和功能/并添加“钥匙串共享”。

再次运行,它应该可以使用显示如下内容的日志:

gvMPr3Z7Aoh6tOA4lo1S3r9abcde

这是匿名用户标识。 如果您将 go 转到 Firebase 控制台身份验证部分,则此 uid 将存在。 现在,所有 firestore 命令都可以使用。 有最后一步,因为如果我们尝试存档,它将失败。

  1. 存档给出错误:

    ssl_transport_security.h:29:12:在框架“openssl_grpc”中未找到 header“x509.h”

为了解决这个问题,我们使用 zummenix 在 github 上给出的众所周知的答案: zummenix answer github 链接

步骤如下:

  1. 创建一个 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
  2. 使用以下命令运行此文件:

    ./runBoringSSLPatch.sh

  3. 再次存档 - 它应该可以工作。 现在“分发应用程序”、开发者 ID、导出。 然后将该文件夹发送给另一个用户。

  4. CTRL-C runBoringSSLPatch 程序。

谢谢

约翰古德施塔特

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM