# #ios #firebase #macos #google-cloud-firestore #mac-catalyst
Вопрос:
Как я могу направить приложение Mac Catalyst в другую область firestore, чтобы пользователи 2 редактора могли легко управлять своими данными со своих ноутбуков?
Предыстория: У меня есть полностью функционирующее приложение iOS, использующее базу данных Google firestore. Несколько пользователей являются редакторами, но в настоящее время им приходится выбирать изображения и MP3-файлы и загружать их из приложения в режиме редактора на свой телефон. Это не очень эффективно.
Проблемы: Я вижу множество проблем Mac Catalyst stackoverflow с получением кода iOS/iPad и firebase для совместной работы. Mac Catalyst еще не поддерживается Firebase от Google.
Спасибо
Ответ №1:
исправлено
У меня есть набор шагов, которые решают создание приложения для Mac для редактирования другой базы данных firebase. В конце вы можете застегнуть молнию и отправить приложение для запуска другому пользователю Mac.
1.Создайте новый проект XCode, называемый здесь tryMacCatalyst.
2.Поставьте галочку в поле Mac и нажмите появившуюся кнопку включить. Затем запустите на Mac для подтверждения. Затем закройте проект, чтобы добавить модули.
3.Из командной строки проекта выполните обычные действия для инициализации проекта модуля.
pod init
- Отредактируйте подфайл так, чтобы он выглядел именно так:
- Запустите установку модуля:
- Откройте xcworkspace в XCode и запустите на «Моем Mac», чтобы протестировать создание этих библиотек.
- Теперь скопируйте в проект «GoogleService-Info.plist» из целевой установки firebase. это должно выглядеть примерно так:
Оказывается, вы можете поменять местами любой файл Google-Service-Info здесь, чтобы указать на любую базу данных Firebase.
- Создайте приложение. Это выдаст ошибку:
Для подписания «gRPC-C -gRPCCertificates-Cpp» требуется команда разработчиков. Выберите команду разработчиков в редакторе подписей и возможностей.
- Итак, в XCode высветите папку PODS, чтобы она отображалась, как показано ниже: И установите команду.
- Теперь добавьте некоторый swift-код,FirebaseApp.configure для AppDelegate:
11.Добавьте код в ViewController для проверки подключения:Запустите, и вы увидите в журнале «проверка подлинности firebase проверена — пользователя нет»»
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")
}
}
}
Когда вы запустите это, вы получите сообщение об ошибке:
Произошла ошибка при доступе к связке ключей.
- Чтобы исправить это, просто перейдите в проект XCode / Подпись и возможности / и добавьте «Общий доступ к связке ключей».
Запустите еще раз, и он должен работать с журналом, показывающим что-то вроде:
gvMPr3Z7Aoh6tOA4lo1S3r9abcde
Это идентификатор пользователя anon. Если вы перейдете в раздел авторизации консоли Firebase, этот uid будет присутствовать. Все команды firestore теперь будут работать. Есть еще один последний шаг, потому что, если мы попытаемся заархивировать это, это не удастся.
- Архивирование выдает ошибку:
ssl_transport_security.h:29:12: Не нашел заголовок «x509.h» в фреймворке «openssl_grpc»
Чтобы исправить это, мы используем хорошо известный ответ, данный zummenix на github: ссылка на ответ zummenix на github
Шаги приведены здесь:
- Создайте файл mac sh ‘runBORINGSSLPatch.sh’ и используйте следующее (изменение <YOUR_MAC_LOGON_NAME> и <YOUR_MAC_LOGON_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" amp;amp; ln -s Versions/Current/Headers Headers amp;amp; 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" amp;amp; ln -s Versions/Current/Headers Headers amp;amp; echo "Patched grpc" done
- Запустите этот файл с помощью команды:
./runBoringSSLPatch.sh
- Архивируйте снова — и это должно сработать. Теперь «Распространять приложение», Идентификатор разработчика, Экспорт. Затем отправьте папку другому пользователю.
- CTRL-C программа runBoringSSLPatch.
Спасибо
Джон Гудштадт