Подтвердить что ты не робот

Google Analytics не работает над новым проектом iOS

Я создал новый проект iOS и добавил поддержку Google Analytics, следуя официальным инструкциям.

Я добавил к Frameworks:

libGoogleAnalyticsServices.a
AdSupport.framework
CoreData.framework
SystemConfiguration.framework
libz.dylib

Но это не работает с ошибками:

ld: warning: directory not found for option '-L/Users/.../Sources/GoogleAnalytics'
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_NSManagedObjectModel", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
  "_OBJC_CLASS_$_NSAttributeDescription", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
  "_OBJC_CLASS_$_NSEntityDescription", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
      objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o)
  "_OBJC_CLASS_$_NSPersistentStoreCoordinator", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
  "_OBJC_CLASS_$_NSFetchRequest", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
  "_OBJC_CLASS_$_NSManagedObjectContext", referenced from:
      objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o)
  "_NSSQLiteErrorDomain", referenced from:
      -[GAIDataStore performBlockAndWait:withError:] in libGoogleAnalyticsServices.a(GAIDataStore.o)
  "_NSSQLiteStoreType", referenced from:
      -[GAIDataStore coordinatorWithModel:URL:] in libGoogleAnalyticsServices.a(GAIDataStore.o)
  "_NSOverwriteMergePolicy", referenced from:
      -[GAIDataStore contextWithModel:URL:] in libGoogleAnalyticsServices.a(GAIDataStore.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Как я могу это исправить? Поддерживает ли он arm64?

4b9b3361

Ответ 1

Спасибо всем! Следующие шаги помогли мне:

  • Удалите CoreData.framework.
  • Добавить еще раз CoreData.framework.

arm64 теперь поддерживается. Благодаря Амару.

Теперь я должен исправить последнее предупреждение:

ld: warning: directory not found for option '-L/Users/.../Sources/GoogleAnalytics'

Это происходит потому, что я работаю с проектом для разных пользователей.

Ответ 2

Из страницы

В SDK Google Analytics используются рамки CoreData и SystemConfiguration, поэтому вам нужно добавить в целевые связанные библиотеки приложений следующие:

  • libGoogleAnalyticsServices.a
  • AdSupport.framework
  • CoreData.framework
  • SystemConfiguration.framework
  • libz.dylib

Похоже, вам не хватает CoreData.framework.


Запуск команды lipo -info в библиотеке GA.

xcrun -sdk iphoneos lipo -info libGoogleAnalyticsServices.a

Дает результат,

Architectures in the fat file: libGoogleAnalyticsServices.a are: armv7 armv7s i386 x86_64 arm64 

Поэтому он поддерживает arm64.

Надеюсь, что это поможет!

Ответ 3

Вы должны добавить файл libsqlite3.0.dylib в свои рамки.

Чтобы сделать это, под целевой целью проектов, на общей вкладке вы найдете "Связанные структуры и библиотеки", просто выберите кнопку "+" и добавьте фреймворк оттуда