React Native Image Picker: "undefined не является объектом (оценка 'ImagePickerManager.showImagePicker')"

Я следовал за файлом Readme из response-native-image-picker с ручным и автоматическим связыванием (пробовал оба отдельно).

Когда я запускаю симулятор из терминала, используя react-native run-ios Я получаю ошибку. При запуске из Xcode он работает нормально, я могу получить доступ к средству выбора CameraRoll без проблем.

Вот версии, которые я использую:

"react-native": "0.43.3", "react-native-image-picker": "^0.26.3",

Я видел подобную тему здесь stackru, и кажется, что я не единственный, имеющий эту проблему.

Спасибо за помощь.

Полная ошибка:

undefined is not an object (evaluating 'ImagePickerManager.showImagePicker')

showImagePicker
    index.js:28:30
selectPhotoTapped
    CamPick.js:31:32
touchableHandlePress
    TouchableOpacity.js:126:45
_performSideEffectsForTransition
    Touchable.js:746:34
_receiveSignal
    Touchable.js:664:44
touchableHandleResponderRelease
    Touchable.js:433:24
invokeGuardedCallback
    ReactErrorUtils.js:30:9
executeDispatch
    EventPluginUtils.js:99:42
executeDispatchesInOrder
    EventPluginUtils.js:127:20
executeDispatchesAndRelease
    EventPluginHub.js:37:46
forEachAccumulated
    forEachAccumulated.js:30:16
processEventQueue
    EventPluginHub.js:227:8
runEventQueueInBatch
    ReactEventEmitterMixin.js:18:35
handleTopLevel
    ReactEventEmitterMixin.js:38:25
<unknown>
    ReactNativeEventEmitter.js:113:8
perform
    Transaction.js:149:24
batchedUpdatesWithControlledComponents
    ReactGenericBatching.js:51:26
_receiveRootNodeIDEvent
    ReactNativeEventEmitter.js:111:40
receiveTouches
    ReactNativeEventEmitter.js:200:8
__callFunction
    MessageQueue.js:244:47
<unknown>
    MessageQueue.js:108:26
guard
    MessageQueue.js:46:4
callFunctionReturnFlushedQueue
    MessageQueue.js:107:10

1 ответ

Решение

Казалось, что XCode не связывает файлы должным образом, уловка, которая работала для меня, состояла в следующем:

  1. Откройте проект Xcode 'MainProject.xcodeproj'
  2. Под MainProject под библиотеками я бы пошел найти RNImagePicker.xcodeproj
  3. В RNImagePicker.xcodeproj я бы щелкнул правой кнопкой мыши и удалил оба файла ImagePickerManager.h и ImagePickerManager.m
  4. Щелкните правой кнопкой мыши по RNImagePicker.xocdeproj, чтобы "Добавить файлы в...", а затем выберите оба файла из "node_modules/ реагировать-native-maps/ios/ImagePickerManager.h и ImagePickerManganer.m".

Надеюсь, это поможет кому-то, у кого может быть такая же проблема;)