RN 0.62 - 18 повторяющихся символов для архитектуры armv7 - PullRequest
0 голосов
/ 05 мая 2020

Я недавно обновил приложение, поддерживающее реакцию, с 0.60.4 до 0.62.0, и я уже решил массу проблем, хотя я не знаю, насколько я далек от успеха, но я чувствую себя близким, вот как pod файл выглядит -

platform :ios, '10.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
use_native_modules!

target 'MyProject' do
    pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
    pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
    pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
    pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
    pod 'React', :path => '../node_modules/react-native/'
    pod 'React-Core', :path => '../node_modules/react-native/'
    pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
    pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
    pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
    pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
    pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
    pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
    pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
    pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
    pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
    pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
    pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
    pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'

    pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
    pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
    pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
    pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
    pod 'ReactCommon/callinvoker', :path => "../node_modules/react-native/ReactCommon"
    pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
    pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga', :modular_headers => true
    pod 'RNCharts', :path => '../node_modules/react-native-charts-wrapper'
    pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

end


post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '4.2'
        end
    end
end

Теперь у меня также есть заголовок моста, который выглядит примерно так -

//
//  Use this file to import your target's public headers that you would like to expose to Swift.
//

#import "React/RCTBridge.h"
#import "React/RCTViewManager.h"
#import "React/RCTUIManager.h"
#import "React/UIView+React.h"
#import "React/RCTBridgeModule.h"
#import "React/RCTEventDispatcher.h"
#import "React/RCTEventEmitter.h"
#import "React/RCTFont.h"

Я сталкиваюсь с ошибками ниже -

ld: 18 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

И, видимо, это указывает ниже 18 дублированных файлов -

RNBarChartManager.o
RNBarChartManager.o
RNBubbleChartManager.o
RNBubbleChartManager.o
RNCandleStickChartManager.o
RNCandleStickChartManager.o
RNCombinedChartManager.o
RNCombinedChartManager.o
RNHorizontalBarChartManager.o
RNHorizontalBarChartManager.o
RNLineChartManager.o
RNLineChartManager.o
RNPieChartManager.o
RNPieChartManager.o
RNRadarChartManager.o
RNRadarChartManager.o
RNScatterChartManager.o
RNScatterChartManager.o

Большая часть из них принадлежит react-native-charts-wrapper пакаге. Я не знаю, откуда и как мне удалить эти дубликаты.

1 Ответ

1 голос
/ 09 мая 2020

Наиболее вероятная причина заключается в том, что вы включили связывание с Cocoapods и автоматическое связывание, но вы не удалили связанный вручную фреймворк из своего проекта Xcode.

Если вы откроете рабочее пространство в Xcode, а затем посмотрите раздел «Связанные двоичные файлы и фреймворки» в настройке проекта . Вероятно, у вас есть связанный фреймворк, который называется что-то вроде react-native-chart-wrapper.a. Если вы удалите это, все должно работать.

Вы также можете найти группу Libraries в списке файлов слева и удалить ее. Теперь вы используете Cocoapods, он вам больше не понадобится. Когда он спросит, нажмите только «Удалить ссылки», а не «Переместить в tra sh». Удаление этого должно также привести к удалению соответствующего списка в «Связанных двоичных файлах и фреймворках».

...