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是 in ../node_modules/react-native-mapbox-gl/ios/RCTMapboxGL.xcodeproj,它已经作为参考添加到我的项目中。

RCTMapbox注解

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 回答