半分個人用のメモ代わりに残しておく
経緯
Podfileがある時にreact-native-link
した時はPodfileにpodspecが自動的に追記される。
そしてreact-native-configをCocoaPod経由で使おうとするとビルドエラーになった。
issue的にはここらへん
https://github.com/luggit/react-native-config/issues/125
色々思考錯誤した結果以下の方法でいけた。
対応方法
こちらのPRの手順でビルドできるようになった
https://github.com/luggit/react-native-config/pull/329
react-native-configのインストール
$ yarn add react-native-config
$ react-native link react-native-config
Podfileに以下を追記
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'react-native-config'
phase = target.project.new(Xcodeproj::Project::Object::PBXShellScriptBuildPhase)
phase.shell_script = "cd ../../"\
" && RNC_ROOT=./node_modules/react-native-config/"\
" && export SYMROOT=$RNC_ROOT/ios/ReactNativeConfig"\
" && export BUILD_DIR=$RNC_ROOT/ios/ReactNativeConfig"\
" && ruby $RNC_ROOT/ios/ReactNativeConfig/BuildDotenvConfig.ruby"
target.build_phases << phase
target.build_phases.move(phase,0)
end
end
end
react-native-configの設定を追加
-
project -> Build Settings -> All
の検索欄に「preprocess」を入れて絞り込む -
Preprocess Info.plist File
をYes
にする -
Info.plist Other Preprocessor Flags
に-traditional
を入れる -
Info.plist Preprocessor Prefix File
を以下のパスにする$(SRCROOT)/../node_modules/react-native-config/ios/ReactNativeConfig/GeneratedInfoPlistDotEnv.h
- CococaPods経由かどうかでここのパス変わるのだろうか