メモメモメモ

ほんとうにめも

【MySQL】Jsonカラムに値が入れられなくて困ったら

stagingとかからexportしてきた値をlocalDBにimportしようとすると、こんなエラーに遭遇した。

Cannot create a JSON value from a string with CHARACTER SET 'binary'.

文字コードを変えると良さそうだけど、シンプルに

  1. 一旦カラム定義をText型にする
  2. データをimportする
  3. カラム定義をJsonに戻す

シンプルにこの対応でよかった。 Json型だろうがText型だろうが入る内容は同じなので大丈夫そう。

【ReactNative】Androidで2回目以降のリリースフロー

だいたい開発中はiOSでStaging(TestFlight)まで上げてAndroidは後回しにするので忘れがちな自分のために備忘録を。

手順

  1. ビルドバージョンを変更
  2. リリースビルドを作成(APKファイルを生成)(CLIコマンド一発)
  3. APKファイルをGoogle Play ストアにアップロード

以上。 参考までに、これがiOSだと

  1. ビルドバージョンを変更
  2. Archive・Distribute(XCode上でGUIでできる)
  3. ビルドバージョンを選択して「審査へ提出」

になる。ほとんど変わらない。 ※iOSの場合は審査待ちがあるので比較的「スムーズに行かない」気分になる。

1. ビルドバージョンを変更

./android/app/build.gradle

    defaultConfig {
        applicationId "your_app_id"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 2 // ここをincrement
        versionName "1.1" // ここもincrement
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }

versionCodeversionNameバージョンアップされていればOK。 ここを変えないと手順3バージョン コード 1 の APK が既に存在するため、別のバージョン コードを使用する必要がありますとなってAPKファイルをアップロードできない。

2. リリースビルドを作成(APKファイルを生成)

[project]/android

./gradlew assembleRelease

を実行する。 すると、[project]/android/app/build/outputs/apk/releaseapp-release.apkファイルが生成される。 このAPKファイルが、アプリ本体のようなものみたいです。

余談ですがAndroid端末からAPKを抽出して別端末へコピーとかもできるみたい。

3. APKファイルをGoogle Play ストアにアップロード

Google Play Console (https://play.google.com/apps/publish) へ行って、アプリを選択。

下画像にある左サイドバーの「リリース管理」 > 「アプリのリリース」へ移動し、

f:id:yooska14:20181021034753p:plain
アプリのリリース

製品版トラックセクションで「APKファイルをアップロード」する。 あとはポチポチ進んだらすぐリリースできる(iOSと違って審査がないからすぐリリースできる)