Google Maps SDKをインストールしようとしていますが、実行中にこのエラーが発生します。
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)
手動でインストールされた古いGoogleマップSDKを使用していたアプリをアップグレードしたときに、次の変更に気付きました。
CocoaPodsのインストール方法を(現在の指示に従って)使用する場合、必要なフレームワークを取得する必要がありますが、それでも-all_loadによって混乱します。
以下が含まれていることを確認してください
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があり、存在しない場合は追加します
**_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.
GoogleのAPIはビーコンの場所にCoreBluetoothを必要とするようです。ビルドフェーズでCoreBluetooth.framework
に対してリンクすると、すべてが正常に機能するはずです。
編集:問題を回避するために、次の手順に従ってGoogleMapsをインストールしてください: https://developers.google.com/maps/documentation/ios/start
私は同じ問題を抱えていますが、私の場合、GoogleMap.frameworkの2つの参照があり、古いフレームワークの参照を削除して問題が解決しました:)
**_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.
今日誰かがこれを経験しているなら、リンクCoreLocation.framework
バイナリビルド設定は私のためのトリックをしました
(ターゲット->ビルド設定->その他のリンカーフラグ)から-all_loadフラグを削除すると、ココアポッドの使用中に問題が解決しました。