1

この元の例を段階的に再現するRCTMapboxGL (5.1.0)と、リンカーでエラーが発生します。これは、使用しようとするたびに発生しますRCTMapboxGL

私は両方を試しました:

Xcode コンソール:

重複定義

Xcode コンソール:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_RCTMapboxAnnotation", referenced from:
      objc-class-ref in libRCTMapboxGL.a(RCTMapboxGL.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

不足しているシンボルRCTMapboxAnnotationは に../node_modules/react-native-mapbox-gl/ios/RCTMapboxGL.xcodeprojあります。これは、参照としてプロジェクトに既に追加されています。

RCTMapboxAnnotation

Xcode ビルド設定のその他のリンカー フラグ

Xcode ビルド設定のその他のリンカー フラグ

4

1 に答える 1

1

私の解決策は、MapboxGL ライブラリ全体のすべての React インポート ステートメントを修正することでした。

それらを次の形式でグローバル インポートに変換すると#import <React/MissingClass.h>、問題が解決しました。

例えば#import RCTView.h_#import <React/RCTView.h>

(合計 9 ファイル):

RCTMapboxAnnotation.m:

#import "RCTMapboxAnnotation.h"
#import <React/RCTEventDispatcher.h>
#import <React/UIView+React.h>
#import <React/RCTBridge.h>
#import <React/RCTUtils.h>

RCTMapboxAnnotation.h:

#import "RCTMapboxAnnotation.h"
#import <MapBox/MapBox.h>
#import <UIKit/UIKit.h>
#import <React/RCTConvert+MapKit.h>
#import <React/RCTComponent.h>
#import "RCTMapboxGL.h"

RCTMapboxAnnotationManager.m:

#import "RCTMapboxAnnotationManager.h"
#import <React/RCTUIManager.h>
#import <React/RCTConvert+CoreLocation.h>
#import <React/UIView+React.h>
#import "RCTMapboxAnnotation.h"

RCTMapboxAnnotationManager.h:

#import <React/RCTViewManager.h>

RCTMapboxGL.h:

#import <Mapbox/Mapbox.h>
#import <React/RCTView.h>
#import <React/RCTEventDispatcher.h>
#import <React/RCTBridgeModule.h>

RCTMapboxGL.m:

#import "RCTMapboxGL.h"
#import <React/RCTBridgeModule.h>
#import <React/RCTEventDispatcher.h>
#import <React/UIView+React.h>
#import <React/RCTLog.h>
#import "RCTMapboxGLConversions.h"
#import "RCTMapboxAnnotation.h"

RCTMapboxGLManager.h:

#import <React/RCTViewManager.h>

RCTMapboxGLManager.m:

#import "RCTMapboxGLManager.h"
#import "RCTMapboxGL.h"
#import <Mapbox/Mapbox.h>
#import <React/RCTConvert+CoreLocation.h>
#import <React/RCTConvert+MapKit.h>
#import <React/RCTBridge.h>
#import <React/RCTEventDispatcher.h>
#import <React/UIView+React.h>
#import <React/RCTUIManager.h>
#import "RCTMapboxGLConversions.h"
#import "MGLPolygon+RCTAdditions.h"
#import "MGLPolyline+RCTAdditions.h"

RCTMapboxGLConversions.m:

#import <Foundation/Foundation.h>
#import <React/RCTConvert+CoreLocation.h>
#import <React/RCTConvert+MapKit.h>
#import "RCTMapboxGL.h"
于 2017-01-31T09:01:30.070 に答える