【React Native】Google Playで公開したAndroidアプリがAPIとの通信に失敗する

React Native で開発した Android アプリをGoogle Play で公開した時のみ、API との通信に失敗するという現象に遭遇しました。
DeployGate というテストアプリ配布サービスを使っていた時は問題なかったので、発見が遅れました…。

解決にあたり、参考にさせていただいた記事はこちらから。

React Native android app not working in release – Stack Overflow
https://stackoverflow.com/questions/57289466/react-native-android-app-not-working-in-release

どうやら、私と全く同じ現象にお悩みだったようです…!

 

解決方法ですが、AndroidManifest.xml<application>android:usesCleartextTraffic="true" を追加するだけでした。
サンプルコードは下記のとおりです。

<manifest
    ......
    <application
        ......
        android:usesCleartextTraffic="true">
    </application>
</manifest>

上記を追加後、アプリをリリース用でビルドし、実行したところ、API と通信できるようになりました!

ただ、他にも色々試していて、 android/app/build.gradleminifyEnabled trueshrinkResources true を追加したりもしていたので、もしかしたらこちらが効果的だった可能性もなくはない…。

android {
    buildTypes {
        release {
            ......
            minifyEnabled true
            shrinkResources true
        }
    }
}

でも、タイミング的には android:usesCleartextTraffic="true" を追加した後に正常に動き出したので、恐らくこれで解決できたと思っていいと思います。

ちなみに、全く同じコードの iOS アプリは問題なかったので、React Native というより、Android に問題があるのでは?と早めに気づけたことも良かったですね。

 

以上、Google Play で公開した React Native の Android アプリだけ API との通信に失敗する時の対処方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG