問題タブ [react-native-ios]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 反応ネイティブを 0.39.0 以降にアップグレードする際の重複シンボル エラー
iOS アプリを react-native 0.39 以上に更新しようとしています。すべてが 0.38.2 で動作しますが、その後ld: X duplicate symbols for architecture Y
問題が発生しました。アプリ自体は、swift、obj-c、web 埋め込みなどの混合です...
ただし、swift と react-native で作成された共有拡張機能があります。
npm と pod のインストールは問題なく動作するようです。
いくつかの調査の後、問題の理由を見つけ、多くの解決策を試しましたが、それでも解決できませんでした:
[...|similar duplicate symbol _CSSNodeList{something}]
duplicate symbol _CSSNodeListFree in:
~/Library/Developer/Xcode/DerivedData/....../Build/Products/Debug-iphonesimulator/React/libReact.a(CSSNodeList-10ACA1A52987016B.o)
~/Library/Developer/Xcode/DerivedData/....../Build/Products/Debug-iphonesimulator/React/libReact.a(CSSNodeList-5089F60B494D1C9C.o)
duplicate symbol _CSSNodeListAdd in:
~/Library/Developer/Xcode/DerivedData/....../Build/Products/Debug-iphonesimulator/React/libReact.a(CSSNodeList-10ACA1A52987016B.o)
~/Library/Developer/Xcode/DerivedData/....../Build/Products/Debug-iphonesimulator/React/libReact.a(CSSNodeList-5089F60B494D1C9C.o)
ld: 103 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
私が理解できることから、共有拡張機能のどこかに CSSNodeList (およびおそらく他の反応オブジェクト) への参照が少なくとも 2 つあります。しかし、linked frameworks and libraries
orlink binary with libraries
を見ると、1 つしか表示されず、libReact.a を削除して元に戻しても問題は解決しません。
プロジェクト、DerivedData、ポッド、node_modules (...) をクリーンアップしようとしましたが、これ以上成功しませんでした。
(参考までに、私は Xcode 8.2.1、Cocoapod 1.1.1、npm 4.0.5 を実行しています。)
助けてくれてありがとう、みんな。