Получение ошибки компиляции сборки при интеграции Firebase без Cocoapods [Obj-C] - PullRequest
0 голосов
/ 28 мая 2020

Я хочу интегрировать Firebase без cocoapods в свое приложение iOS, которое находится в Obj- C. Я загрузил zip-файл firebase, содержащий все файлы xcframeworks и frameworks. Я пытаюсь реализовать Firebase Analytics с помощью своего приложения.

Я просмотрел файл Readme.md и выполнил шаги по интеграции Firebase с помощью проекта.

Я добавил все необходимое Файлы .xcframework и .framework, которые упоминаются в разделе «Firebase Analytics», и удостоверились, что у меня установлен флажок «Копировать элементы при необходимости» и выбрана «цель» для моего проекта.

После этого я таким же образом добавил заголовочный файл Firebase.h, а также включил тег «-Obj C» в разделе «Настройки сборки -> Связывание -> Другие флаги компоновщика», но даже выполняю все эти шаги, когда создаю свой приложение, я получаю следующую ошибку:

ld: warning: Could not find or use auto-linked framework 'FBLPromises'
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_SKProductsRequest", referenced from:
      objc-class-ref in GoogleAppMeasurement(APMProductsRequest_9ec051498f83cad93a58cf3f308ab9b6.o)
  "_sqlite3_errmsg", referenced from:
      -[APMSqliteStore lastErrorMessage] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_bind_blob", referenced from:
      ___47-[APMSqliteStore bindValues:toStatement:error:]_block_invoke in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_bind_double", referenced from:
      ___47-[APMSqliteStore bindValues:toStatement:error:]_block_invoke in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_bind_text", referenced from:
      ___47-[APMSqliteStore bindValues:toStatement:error:]_block_invoke in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_bind_int64", referenced from:
      ___47-[APMSqliteStore bindValues:toStatement:error:]_block_invoke in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_column_int64", referenced from:
      -[APMSqliteStore valueAtColumn:forStatement:] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_column_double", referenced from:
      -[APMSqliteStore valueAtColumn:forStatement:] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_column_bytes", referenced from:
      -[APMSqliteStore valueAtColumn:forStatement:] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_prepare_v2", referenced from:
      -[APMSqliteStore prepareSQL:error:] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)
  "_sqlite3_changes", referenced from:
      -[APMSqliteStore deleteRecordsFromTableWithName:condition:parameterValues:error:] in GoogleAppMeasurement(APMSqliteStore_4b93d70f10ae469a3a03d3a4cf33073f.o)

Вот моя конфигурация системы:

1.  Mac OS: MacOS Mojave[10.14.6]
2.  Xcode Version: 11.3.1
3.  Deployment Target: 11.3

Может ли кто-нибудь помочь мне в том, чего мне не хватает здесь в конфигурации, которая необходима чтобы его успешно запустить?

1 Ответ

0 голосов
/ 03 июня 2020

В зависимости от того, где вы взяли свою зависимость, он также должен включать в себя файл PromisesObjc.framework. Вам нужно просто перетащить эту структуру в свою часть Xcode Frameworks, Libraries & Embedded Content, и она будет скомпилирована. Если у вас его нет, вам нужно скачать фреймворк FBLPromises и встроить его самостоятельно.

Если вы решили использовать Carthage или CocoaPods, он соберет эту зависимость для вас, но она может быть в списке ваших зависимостей, которые вы упомянули.

...