it-swarm.com.ru

GoogleMapsSDK: неопределенные символы для архитектуры x86_64

Я пытаюсь установить SDK Google maps, и я запускаю эту ошибку при запуске:

Undefined symbols for architecture x86_64:
  "_CBAdvertisementDataManufacturerDataKey", referenced from:
      -[GMSx_PEBeaconScanner centralManager:didDiscoverPeripheral:advertisementData:RSSI:] in GoogleMaps(PEBeaconScanner.o)
  "_CBAdvertisementDataServiceDataKey", referenced from:
      -[GMSx_PEBeaconScanner centralManager:didDiscoverPeripheral:advertisementData:RSSI:] in GoogleMaps(PEBeaconScanner.o)
  "_CBCentralManagerScanOptionAllowDuplicatesKey", referenced from:
      -[GMSx_PEBeaconScanner scanIfAppropriate] in GoogleMaps(PEBeaconScanner.o)
  "_OBJC_CLASS_$_CBCentralManager", referenced from:
      objc-class-ref in GoogleMaps(PEBeaconScanner.o)
  "_OBJC_CLASS_$_CBUUID", referenced from:
      objc-class-ref in GoogleMaps(PEBeacon.o)
      objc-class-ref in GoogleMaps(PEBeaconScanner.o)
  "_vImageBoxConvolve_Planar8", referenced from:
      (anonymous namespace)::CreateBlurredImage(CGImage*, double, double) in GoogleMaps(GLWaterGroup.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
20
STo

Я заметил следующие изменения при обновлении приложения, в котором использовался более старый SDK Google Maps, установленный вручную:

  • Необходимо связать с CoreBluetooth.framework и Accelerate.framework в Фазах сборки -> Связать связку с библиотеками.
  • Флаг -all_load в разделе «Другие флаги компоновщика» вызовет ошибки «дубликат символа». (Вместо этого используйте -ObjC .)

Если вы используете метод установки CocoaPods (согласно их текущим инструкциям), он должен взять необходимые рамки, но он все равно будет испорчен -all_load .

43
colink

убедитесь, что следующие включены

Каркас и пакет GoogleMaps SDK

GoogleMaps (с расширением .framework) присутствует в вашем корневом каталоге (где находится ваш .xcodeproj)

Ссылки на GoogleMaps (с расширением .bundle) в вашем проекте xcode

Следующие рамки

Accelerate.framework

AVFoundation.framework

CoreBluetooth.framework

CoreData.framework

CoreGraphics.framework

CoreLocation.framework

CoreText.framework

GLKit.framework

ImageIO.framework

libc ++. dylib

libicucore.dylib

libz.dylib

OpenGLES.framework

QuartzCore.framework

Security.framework

SystemConfiguration.framework

Настройки сборки

Значение архитектуры в настройках вашего проекта включает armv7.

Другие флаги компоновщика имеют -ObjC, если нет, добавьте его

11
Waseem Lateef
**_vImageBoxConvolve_Planar8, referenced from: (anonymous namespace)::CreateBlurredImage(CGImage*, double, double) in GoogleMaps(GLWaterGroup.o)**

This required "Accelerate.framework". So, please add it.

Steps:
1)Build Phases -> Link Bundle with Libraries.
2)Click "+",
3)Select "Accelerate.framework". Finish.

===================================

Others errors required "CoreBluetooth.framework. So, please add it also in similar way.
9
ArunDhwaj IIITH

Похоже, что API Google нужен CoreBluetooth для определения местоположения маяка. Ссылка на CoreBluetooth.framework на ваших этапах сборки, и все должно быть в порядке.

enter image description here

Правка: Обязательно установите GoogleMaps с помощью этих инструкций, чтобы избежать любой проблемы: https://developers.google.com/maps/documentation/ios/start

4
Quentin Hayot

У меня та же проблема, в моем случае у меня есть 2 ссылки на GoogleMap.framework, я удалил старую ссылку на фреймворк, и проблема была решена :)

  • Нажмите на проект
  • В Этапы сборки -> Связать двоичные файлы с библиотеками -> Проверить наличие дубликатов ссылок для GoogleMaps.framework
  • Если да, то удалите тот, который вы не добавили.
2
Neha
**_vImageBoxConvolve_Planar8, referenced from: (anonymous namespace)::CreateBlurredImage(CGImage*, double, double) in GoogleMaps(GLWaterGroup.o)**

This required "Accelerate.framework". So, please add it.

Steps:
1)Build Phases -> Link Bundle with Libraries.
2)Click "+",
3)Select "Accelerate.framework". Finish.
2
ArunDhwaj IIITH

Удаление -all_load flag из (Targets-> Build Settings-> Other linker flag) решило мою проблему при использовании какао-бобов.

0
Ali