react-native-google-signin で 'You must specify |clientID| in |GIDConfiguration|' エラーが出た

@react-native-google-signin/google-signin でGoogleログイン機能を作ろうと思ったら、以下のようなエラーが出た 'You must specify |clientID| in |GIDConfiguration|' ログインするには、webClientIdを指定する必要がある。それは適切に行っていた。 Goog…

React Nativeアプリの初期化の後に、Androidのnamespaceを変えたときの注意

React Nativeで foo というアプリをセットアップすると、namespace、applicationIdは次のようになっている。 namespace "com.foo" ... applicationId "com.foo" これを com.company.foo に変える。そして、javaファイルで定義されているpackage名の部分も全…

Googleログインで発生した [Error: DEVELOPER_ERROR] を解決する

React NativeのAndroid開発で、Googleログインを実装していたが、以下のようなエラーが出た。 [Error: DEVELOPER_ERROR] FirebaseのAndroidアプリに SHA 証明書フィンガープリント が設定されていないのが原因っぽいので登録する。以下のコマンドでキースト…

Dockerで Cannot find module '../build/Release/sharp-linux-x64.node' が出たので解決した

Docker環境(Cloud Run)でsharpをインストールしているnodeサーバーを立てようとしたら Cannot find module '../build/Release/sharp-linux-x64.node' というエラーが出た。 sharpはインストール環境とランタイム環境を同じにしなくてはいけない特殊性がある…

React NativeアプリをXcodeでビルドしたら Command PhaseScriptExecution failed with a nonzero exit code というエラーが出たので解決した

React Nativeで作成しているiOSアプリをXcodeでビルドしたら Node found at: /usr/local/bin/node dyld[39998]: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.71.dylib Referenced from: <D092FE6D-5639-3BBF-A0A6-1CE0F725CADB> /usr/local/Cellar/node/18.10.0/bin/node ... Command</d092fe6d-5639-3bbf-a0a6-1ce0f725cadb>…

App StoreのアプリページのURLを知りたい

App Storeへリリースする前にURLを知りたかった。 https://apps.apple.com/app/id<Apple ID> これで該当のページに飛ぶURLになる。 Apple IDはApp Store Connectの一般のApp情報からいつでも見ることができる。</apple>

docker push時に unauthorized: failed authentication エラー

Google CloudのArtifact Registryにpushしようとしたらこのエラー。 gcloud auth login で再度認証すると解決する。

FCMでプッシュ通知送ろうとしたら An error occurred when trying to authenticate to the FCM servers

Firebase Node SDK を使ってプッシュ通知送ろうとしたらこのエラーが出た。 Firebase内だけでなくGCPの設定も必要で、APIとサービス から Cloud Messaging を検索して有効にする。

Google Workspace で no-reply アカウントを作る

Google Workspaceで no-reply@domain.jp など送信専用の設定をする。 https://admin.google.com/ から管理コンソールに入り、ドロワメニューから 「アプリ」 -> 「Google Workspace」-> 「Gmail」を選択。 「ルーティング」をクリックしルーティング画面に移…

react-native-soundでダッキングしたい(iOS)

オーディオセッションを共有して同時に音を出した状態にするとき、ダッキングと言って片方の音を小さくして片方を目立たせることができる。 iOSネイティブ開発では AVAudioSessionCategoryOptionDuckOthers を指定すればこれが実現できるが、react-native-so…

iOSアプリの表示アイコンが Display Name を変更しても変わらない

Xcodeの Targets -> General -> Identity の Display Name を変更してもアプリの表示名が変わらなかった。 info.plist で Bundle display name を加えて value に表示したいアプリ名を指定するとアプリ名が変わり、解決した。 ちなみに Bundle display name …

Objective-cメモ

@react-native-firebase/auth: "16.0.0"のobjcのコードを読まなきゃいけない機会があったのでそれを元にobjcの文法をメモる。 変数の前につく * ってなに NSDictionary *authCredentialDict = nil; ポインタであることを表す。 NSDictionaryはobjcのオブジェ…

JS Bundleの中身を見たい

ReactNativeアプリを実行する時、JSコードは Metoro によって JS Bundle という1つのファイルにバンドルされる。 そのバンドルの中身はローカルでMetoroが起動している状態の時に http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false で…

JS あるキーが重複したオブジェクトを取り除く

const a = [ { name: 'Risa', age: 22, }, { name: 'Ryu', age: 20, }, { name: 'Risa', age: 22, }, ]; このような配列がある。要素のオブジェクトの name の値が重複しているオブジェクトを1つ取り除きたい。 const mapped = new Map(a.map((_a) => [_a.na…

react-native-mmkvを導入したら Undefined symbols for architecture x86_64 が出た

react-native0.68.4 どうやら react-native-firebase を導入した時にPodfileに加えた use_frameworks! が原因っぽい。 結論としては、react-native-mmkvを静的ライブラリとして読み込んであげると解決した。 pre_install do |installer| installer.pod_targe…

ExpoでiOSのスキーマ加えてビルドしたら error: filename "ExpoModulesProvider.swift" used twice: が出た

TARGETS -> Build Phases -> Compile Sources に ExpoModulesProvider.swift が2つ登録されてしまっていたのでいらない方消す。

Swiftでマップや位置情報を使う

Swift初心者のメモです。 iOS15で検証 マップ 基本となるインスタンス import MapKit let mapView = MKMapView() ユーザーの現在地表示(青ポチのあれ) mapView.showsUserLocation = true トラッキングモード(青ポチが自動で移動するあれ) mapView.userTr…

PrismaからCloud SQLに接続するための DATABASE_URL のhost以降

host=/cloudsql/PROJECT_id:REGION:NAME

terraformからIAMを作成する時に Error retrieving IAM policy for project ~ googleapi: Error 403: The caller does not have permission

terraformからIAMを作成するために以下のようなコードを書いた。 resource "google_service_account" "scheduler_invoker" { display_name = "Schedler Invoker" account_id = "scheduler-invoker" } resource "google_project_iam_member" "run_invoker" { …

ReactNativeでデバッグ用apkファイルを作成する

プロジェクトルートで react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res cd android ./gradlew assembleDebug yourPr…

TerraformでGCPのCloud SQL(postgres)のtierを指定するときのポイント

TerraformでGCPのCloud SQLをpostgresで立てようと思った。 CPUやメモリなどを含んだマシンタイプを指定する必要があるが、今までは db-f1-micro のようにGCPがデフォルトで提供しているタイプを使用していた。 tier = "db-f1-micro" これを db-lightweight-…

Prismaのデプロイで Error: P3009 migrate found failed migrations in the target database, new migrations will not be applied. が出たので対処した

Cloud SQL に prisma deploy した時に Error: P3009 migrate found failed migrations in the target database, new migrations will not be applied. ... The `20220515100619_foo` migration started at ... というエラーが出た。 このエラーが出たマイグ…

Playgroundが見つからなくて焦った

Playgroundでコード書こうと思ったらどこから始めればいいか忘れてた。 Xcodeメニューの File -> New -> Playground から新規作成できる。

react-native-google-fitを開発用で使えるようにする

ReactNativeを使っているアプリで react-native-google-fit を用いて Google Fit と連携したかったが、開発用で使用可能にするためのプロセスで若干ハマったので備忘録。 GitHub - StasDoskalenko/react-native-google-fit: A React Native bridge module fo…

Cloud Shellから Cloud SQL (postgres)に繋いでみる

GCPのCloud Shellから インスタンスに接続 gcloud sql connect <インスタンス名> --user=postgres データベースの確認 \l データベースの選択 \c <データベース名> テーブル一覧 \dt; レコード取得 // テーブル名が大文字の場合はダブルクオーテーションつけ…

LeetCodeの Longest Common Prefix をSwiftでやった

class Solution { func longestCommonPrefix(_ strs: [String]) -> String { if strs.count == 0 { return "" } func m(_ n1: String, _ n2: String) -> Bool { return n1.count < n2.count } var minStr = strs.min(by: m)! for str in strs { while !str.h…

React Native FirebaseでAuth機能使おうとしたら GTMSessionFetcher invoking fetch callbacks エラー

React Native Firebaseで認証認可を行うための実装をし、いざ実行してみると GTMSessionFetcher invoking fetch callbacks のようなエラーが出た。 他のプロジェクトで使った時は出なかったエラーだったので最初悩まされた。結論、Firebaseの方のログインプ…

terraformの lacks IAM permission "iam.serviceAccounts.actAs" for the resource ~ に殺されかけた

terraformでGCPを構築していた。 Cloud Schedulerを作成しようと思いリソースを定義。oidcトークンを付与するためにサービスアカウントAを定義し oidc_token { service_account_email = google_service_account.A.email } を行うも lacks IAM permission "ia…

Cloud BuildからCloud Runにデプロイしようとしたら does not have permission to access namespaces instance が出た

Cloud BuildからCloud Runへデプロイを試みたら does not have permission to access namespaces instance というエラーが出て失敗した。 IAMを見ても一通りロールは渡しているように思えた。 解決法 Cloud Build -> 設定のサービスアカウントが無効になって…

The minCompileSdk (31) specified in a dependency's AAR metadata is greater than this module's compileSdkVersion (android-30) が出たので対処した

ReactNativeで開発しており、Androidでビルドを試みたときに The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-3…