我如何将Mac Catalyst应用程序指向另一个firestore区域,以便2编辑器用户可以轻松地管理他们的笔记本电脑中的数据?
背景:我有一个使用谷歌firestore数据库的完整功能的iOS应用程序。一些用户是编辑,但目前必须选择图片和MP3,并在编辑模式下从手机应用程序上传这些图片和MP3。这不是很有效率。
问题:我看到很多Mac Catalyst stackoverflow在iOS/iPad代码和firebase协同工作方面的问题。谷歌的Firebase还不支持Mac Catalyst。
谢谢
固定
我有一组步骤来解决创建一个Mac应用程序来编辑另一个firebase数据库的问题。最后,你可以拉上拉链,将应用程序发送给另一个mac用户运行。
1.创建一个新的XCode项目-这里称为TryMacCatalyst。
2.在“Mac”框中打勾,然后点击出现的启用按钮。然后在Mac上运行确认。然后关闭项目以添加POD。
3.在项目的命令行中,像往常一样初始化一个pod项目。
pod init
在XCode中打开xcworkspace,并在“My Mac”上运行以测试这些库的构建。
现在将目标firebase安装中的'googleService-info.plist‘复制到项目中。它看起来应该是这样的:
结果表明,您可以在这里交换任何Google-Service-Info文件以指向任何Firebase DB。
为“grpc-c++-grpcCertificates-cpp”签名需要一个开发团队。在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身份验证的连接:
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
这是anon用户ID。如果您转到Firebase控制台验证部分,则会出现此uid。所有firestore命令现在都将工作。还有一个最后的步骤,因为如果我们试图存档,它将失败。
存档会出现错误:
ssl_transport_security.h:29:12:在框架“openssl_grpc”中找不到标头“x509.h”
为了解决这个问题,我们使用了zummenix在github上给出的众所周知的答案:zummenix answer github link
步骤如下:
>
创建mac sh文件“runboringsslpatch.sh”并使用以下命令(更改
# 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程序。
谢谢
约翰·古德施塔特