既存iOSアプリへのReact Native導入とcocoapods-fix-react-native
- 既存iOSアプリへのReact Native導入は公式にドキュメントが用意されている
- その手順に従うと、React Nativeの依存解決にはCocoaPodsを使うようになっている
- 一方
react-native init
で新規にプロジェクトを作成する場合は、各ライブラリがstatic libraryとしてxcodeprojに直接設定されるようになっている
- 一方
- React NativeのCocoaPodsサポートではsubspecが使われているが、subspecではヘッダーのディレクトリが分割されないので、static libraryとして組み込む場合とは一部ヘッダーのインポート方法が異なってビルドエラーになる
- 他にもエラーになる要因はいくつかある
- そのような問題を解消してくれるのが https://github.com/orta/cocoapods-fix-react-native/ というCocoaPods用のプラグイン
- ソースコードへのモンキーパッチ(主にヘッダー)
- 作者はかのOrtaなので安心感がある
- 実際にOrtaが所属するArtsyでのReact Nativeアプリの開発で使われている(そのために作られた?)ものと思われる
- 導入PRを見つけた 👀 https://github.com/artsy/emission/pull/1000
ということで、既存iOSアプリにReact Nativeを導入したい場合はcocoapods-fix-react-nativeプラグインを使っていきましょう 💪
既存iOSアプリにReact Nativeを導入するための最高のプラグインです https://t.co/2kn0CJJoco
— 池田・ジェンキンス・翔 (@ikesyo) 2018年5月15日