Undefined symbol: (extension in UIKit):__C.UIAction.init(title: Swift.String, image: __C.UIImage?, ~ 的なエラーが出た
ReactNativeのリリースビルドでタイトルのようなエラーが出て対処したのでメモ。デバッグビルドでは出なかった。
これはどうやらReactNative0.63.3で発生しているエラーっぽくて、自分もモロ0.63.3を使っていた。
使用しているわけではないが、このgithubに書かれている対処法を参考にした。
PROJECT -> Build settings -> Library Search Pathsの
"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"
の中のswift-5.0を swift-5.3 に変更する。
ただ、たぶんRNのバージョンあげればこれしなくても解決すると思う。
バージョンアップは大事。
module map file '/Build/Products/Release-iphoneos/RNImageColors/RNImageColors.modulemap' not found 的なエラーが出た
ReactNativeのリリースビルド時にタイトルのようなエラーが出た。デバッグの時は出てない。
解決にはこのissueを参考にした。
# エラーが出た時のPodfile platform :ios, '10.0' ...
# 修正後のPodfile platform :ios, '9.0' ...
変更後 pod install
これで通ったが、
この画像の通り、自分のDeployment Targetは10なので platform :ios, '10.0' で動かないとおかしい、、
なのでもう一度キャッシュを削除して pod install してビルドしたら通った。
最初エラーが出た時もキャッシュは削除したからキャッシュが問題だったわけではなさそう。
ちょっと前にflipperを有効にするために少しPodfileやら設定をいじったりしたのでそこに原因があるかもしれない。要調査。
Multiple commands produce react-native-vector-icons/Fonts/AntDesign.ttf' ~ script phase “[CP] Copy Pods Resources”的なエラーが出た。
ReactNativeでタイトルのようなエラーが出たのを対処したのでメモ。
TARGETS -> Build Phases -> Copy Bundle Resorcesからエラー出てるファイルを全て - で削除する。
ReactNativeでFlipperを使おうとしたら 'event2/event-config.h' file not foundが出た
今までPodfileでflipperを無効にしていたのだが、使ってみたかったので有効にしたら'event2/event-config.h' file not foundというエラーが出たので対処法をメモ。
ReactNativeのバージョンは(古めだけど)0.63。
# エラーが出た時のPodfileのflipperの部分
use_flipper!()
このissueでは「Flipper-Follyのバージョンがアップデートされたから修正してね」とあるのでそれが理由なのかもしれない。
use_flipper!({ 'Flipper-Folly' => '2.3.0' })
や
use_flipper!({ 'Flipper' => '0.95.1', 'Flipper-Folly' => '2.6.7', 'Flipper-RSocket' => '1.4.3' })
にする案もあるが、ここで書かれているように
use_flipper!({ 'Flipper' => '0.122.0' })
に変えて、pod install --repo-update をしたら解決した。
react-native-webviewでGoogleMapを表示する
ReactNativeでwebのGoogleMapを使う必要があったのでそのメモ。
セットアップ
yarn add react-native-webview cd ios pod install
// android/gradle.propertiesに以下2行追加 android.useAndroidX=true android.enableJetifier=true
使用
<WebView source={{ html: `<iframe src="<url>" width="100%" height="100%"></iframe>`, }} />
iframeを使う必要があったので
source={{uri: "
ではなく、htmlを返すようにする。
.gitignoreに追加したのに反映されないとき
.envや.env.devなどを作成し、間違えてそれらもpushしてしまったので.gitignoreに追加したが反映されず、なぜか再度pushされてしまっていた。
.gitignore
.env .env.dev .env.prod .env.stg
原因は既にpushされてしまってたから。明示的に削除しないとダメっぽい。
git rm .env --cached
このコマンドをそれぞれの.env~にやることでpushされなくなる。
(随時更新)ReactNativeでアプリ開発していく上でわからなかったandroidのシステムとかワードとか
RNでアプリを開発していくとネイティブ側をいじることもしばしばある。
そこでわからなかったandroid関連のものを自分用に簡潔にまとめとく。
gradle
ビルドを管理するためのシステム
依存関係とか管理してくれる
buildTypes
ビルドする際の設定やタイプを管理してくれる仕組み、設定
デバッグ用のビルド、リリース用のビルドなどを管理できる
DebugやReleseがある。(確か他にも追加可能)
flavor
アプリ内の差を簡単に作り管理するための仕組み、方法、設定
例えば開発用やステージング用、アプリ内の広告の有無などの設定の差を管理することができる
variant
flavorとbuildTypesを組み合わせて管理するための仕組み、ラベル化したもの