Undefined symbol: (extension in UIKit):__C.UIAction.init(title: Swift.String, image: __C.UIImage?, ~ 的なエラーが出た

ReactNativeのリリースビルドでタイトルのようなエラーが出て対処したのでメモ。デバッグビルドでは出なかった。 これはどうやらReactNative0.63.3で発生しているエラーっぽくて、自分もモロ0.63.3を使っていた。 使用しているわけではないが、このgithubに…

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 これで…

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の部分 u…

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を…

.gitignoreに追加したのに反映されないとき

.envや.env.devなどを作成し、間違えてそれらもpushしてしまったので.gitignoreに追加したが反映されず、なぜか再度pushされてしまっていた。 .gitignore .env .env.dev .env.prod .env.stg 原因は既にpushされてしまってたから。明示的に削除しないとダメっ…

(随時更新)ReactNativeでアプリ開発していく上でわからなかったandroidのシステムとかワードとか

RNでアプリを開発していくとネイティブ側をいじることもしばしばある。 そこでわからなかったandroid関連のものを自分用に簡潔にまとめとく。 gradle ビルドを管理するためのシステム 依存関係とか管理してくれる buildTypes ビルドする際の設定やタイプを管…

ReactNativeで環境ごとにデータを変更したりGoogleService-infoを切り替えたりできるようにする

ReactNativeでdev, stg, prod毎に環境変数のvalueやFirebaseを使用するために使うGoogleService-infoを簡単に切り替えられるようにしたかった。 今回は環境変数の管理はreact-native-configを使用する。 元々iOSのみのつもりだったためandroidは後付け 0 rea…

ReactNativeでFailed to apply plugin 'com.android.internal.application'. Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

androidでビルド時に Failed to apply plugin 'com.android.internal.application'. Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. が出て、 この辺のもできない場合、 ここにあるように11をbrewでインストールして設…

Herokuで再ビルド再デプロイしたい時

$ heroku plugins:install heroku-builds // インストールしてなかったら $ heroku builds:cancel $ heroku restart

graphql-codegenの実行で Invalid AST Node: ~ というエラーが出た

"graphql": "^16.0.0",での出来事。 "graphql": "^15.5.3",にしてから再度試すと通る。 原因は詳しく突き止めれてないので後で時間あったら確かめる。

Xcodeで Failed to launch process. Error returned in reply: Connection invalid が出た

palygroundを実行したら出現した。 シミュレータを全部消す。一旦Xcode全て終了。再度開いて実行で解決

Nextjsのセットアップでエラー2つ出たので対処した

npx create-next-appでNextjsを開始しようとしたら error nanoid@3.1.30: The engine "node" is incompatible with this module. Expected version "^12.22.0 || ^14.17.0 || >=16.0.0". Got "12.19.0" というエラーが出た。 シンプルにバージョンを nodenv…

IPとかサブネットとかCIDRで参考にした記事

https://www.cloudflare.com/ja-jp/learning/network-layer/what-is-a-subnet/ インターネット用語1分解説~CIDRとは~ - JPNIC CIDR(クラスレスアドレッシング)とは - IT用語辞典 e-Words

ECS, Fargateで立てたサーバーをPrismaでRDSにつなぐ

使用技術 TS, Node(Hapi), Prisma, ECS, Fargate, RDS(MySQL) 現在既にAWS上でサーバーが起動しているものとする。 index.ts import Hapi from "@hapi/hapi"; import { PrismaClient } from "@prisma/client"; const prisma = new PrismaClient(); const ini…

ECSからSystems Managerの値参照しようとしたらResourceInitializationErrorが出た

ECS, Fargateで起動させてたサーバーで環境変数が必要だったのでSystems Managerで定義してタスク定義のコンテナ追加の部分の環境変数でValueFromでそのSystems Managerの値を参照しようとしたら ResourceInitializationError ~ が出た。 タスク実行ロールに…

ECSとFargateとALBでNodeサーバーを立てる

Hapi製APIサーバーをDockerコンテナ化したのでAWS上で動かしたかったのでECS, Fargateを使いデプロイすることにした。その手順を書いていく。 index.js const Hapi = require("@hapi/hapi"); const init = async () => { const server = Hapi.server({ port:…

Hapiの公式チュートリアルに載ってるコードだとDockerでうまく動かない

https://hapi.dev/tutorials?lang=en_US ↑これに載ってる 'use strict'; const Hapi = require('@hapi/hapi'); const init = async () => { const server = Hapi.server({ port: 3000, host: 'localhost' }); await server.start(); console.log('Server run…

react-native-background-geolocationについてのあれこれをまとめてく(随時更新予定)

https://github.com/transistorsoft/react-native-background-geolocation を使っているのだが、機能が結構豊富だったり使い方が少し複雑に感じたので調べたこととか気づいたことをまとめてく。 既にある程度使っているのでセットアップから順にとかではない…

iOS, Firebase周りでのアプリ開発で調べた用語(随時更新予定)

Bundle ID アプリを一意に識別するためのもの。Appleのエコシステム。 Xcode -> General -> Bundle Identifier で確認可能。 Firebaseプロジェクト内でiOSアプリを作成するときに必要。あとで変更できないので注意。 https://firebase.google.com/docs/cloud…

TypeScriptのライブラリのinterfaceを拡張する

TypeScript + Nextで開発中、scriptタグを使う必要が出てきた。 (多分)バージョン11から import Script from 'next/script' を使ってScriptコンポーネント 使うようにしないと怒られる。 そこで <Script /> を使ったのだが、propsに渡す型でエラーでた。 import Scri…

TypeScriptのtypeとinterfaceの違う部分を少し見る

typeはエイリアスであり、いろんな型を表すことができる type A = number type B = number | string type C = { name: string age: number } interfaceはnumberとかnumber | stringのエイリアスは作れない type A = number // error type B = number | strin…

PrismaのschemaでHence the relation field must be optional as well.が出た

prismaのスキーマ書いてた。 Userは1つのGroupに所属し、Groupは複数のUserを持つので "one to many" の関係性である。 Userは必ずしもGroupに所属しているとは限らない。 ↓のようなshemaができた。 model User { groupId Int? group Group @relation(fields…

forkしたライブラリの特定のブランチを使いたい

解決策 末尾に #<ブランチ名> を追加 "git+{CodeのHTTPSからコピったURL}#<ブランチ名>" ストーリー { "dependencies": { "react-native-elements": "git+{CodeのHTTPSからコピったURL}" } } こんな感じでライブラリを使っていたが特定のブランチを使いたか…

forkしたライブラリを使う時にdistがない

解決策 .gitignoreからdist外して、コミットする前にローカルでビルドしてdistを作成する 概略 TypeScropt製ライブラリをforkして変更加えてそれを使いたかった。 { "dependencies": { "react-native-elements": "git+{CodeのHTTPSからコピったURL} } } こん…

DockerでNodeサーバー立てる時はTimeZoneに気を付ける

docker-composeでHapi製サーバーを立てたが、new Date()を使った処理でどうもうまく動かない箇所があった。 調べたらTimeZoneがUTCになっておられた。 TZ: Asia/Tokyoを指定すればok environment: TZ: Asia/Tokyo

TypeScriptでPromise<A>のAの部分の型を取得する

UnwrapPromise というユーティリティを使えば取ることができる type P = Promise<number>; type R = UnwrapPromise<P>; // number</p></number>

ReactNativeのDimensionsで取れる高さはReactNavigationのフッターとかあると変わるのか

ReactNavigationを使うと上下にタブを作ってくれるが、これがあるとDimensionsで取れる高さは変わるのか気になったのでメモ。 使用機種はIPhone11 import {Dimensions} from 'react-native'; const {height} = Dimensions.get('screen'); console.log(height…

TypeScriptでコンポーネントがpropsとして受け取る型を再現する

TSとRNでコンポーネントAを作っているとき、そのコンポーネントAに「FlatListに渡せるProps」をPropsとして渡せるように型を作りたかった。 ComponentPropsを使えば作りやすい。 import React, { ComponentProps } from "react"; type Props = { foo: string…

Githubへのpushで fatal: Authentication failed for とか The requested URL returned error: 403が出たので対処した

リモートリポジトリのurlをセットしなおしたら無事pushできた。 git remote set-url origin <git@ ~ から始まるssh用のURL> git remote -v でリモートリポジトリを確認できる</git@>