Lean Engineer

リーンエンジニア〜効率的に実験しながら、技術を学ぶブログ

ReactNativeでcocoapodsを1.4.0から1.5.3に上げたら、ビルドができなくなる問題

 ReactNativeの開発で、ネイティブのライブラリを使うためにiOSはcocoapodsを利用している。cocoapods 1.4.0では上手く動いていたのに、1.5.3にアップデートするとiOSのビルドが通らなくなってしまった。エラーは以下、

'React/RCTDefines.h' file not found
#import <React/RCTDefines.h>

 react-native-pickerというライブラリでReactが見つからないみたいだ。こういう時、やることは

  • Header Search Pathsの確認
  • Cleanする
  • PodsのBuild Active Architecture OnlyのDebugをYESからNOに変える

 とかなのだが、どれもダメ。結果、react-native-pickerをアップデートしたら治った笑。

 どうやら原因は、react-native-pickerのpodspecのdependencyにReactが設定されてなかったことだった。他のライブラリでNativeModule使っていて、cocoapodsを使っている場合で、上記のようなエラーが出た場合は確認してみて欲しい。

 他のメンテナンスされてないライブラリで上記の問題が起こったときは、自分のリポジトリにフォークして、以下を追加すれば治すことができる。

Pod::Spec.new do |s|
  ...

  s.subspec 'Core' do |ss|
    ss.dependency 'React' #追加
    ....
  end

end