Edited at

ストアに出ているアプリのアップデートテストをしようとしたら、つまった…困った…!【解決済み】iOS、Android

More than 1 year has passed since last update.

ストアに出しているアプリをインストールした後に、

次回リリース予定のアプリでアップデート(上書き)しても

エラーが出ないかテストしようとしたら、

そもそも上書きできない…

なぜかインストールできない…

詰んだ…!

となった時の記録と、その時の解決方法。


iOSの場合


<状況>


  • まず、App Storeにある「リリース済みのアプリ」を実機にインストール。

  • その後、Xcodeで制作中の「次回リリース予定のアプリ」をDeployGateにアップ。


    • Xcodeで、Product > Archive

    • Export > Ad Hoc で進め、作成したipaファイルをアップ。



  • 実機でDeployGateの「インストール」ボタンをタップしたが、何度押しても反応がない。
     インストールされない。


<解決方法>

・「インストール」ボタンの左側にある「App Store版を上書き」をタップ。

 すると無事インストールできました。

 


<感想>

「App Store版を上書き」をタップしたら、

もしかしたら「次回リリース予定のアプリ」がApp Storeにアップされてしまうのでは…!

と一瞬怖くなりましたが、

全然そんなことはありませんでした。

「App Storeにあるアプリを上書き」じゃなく「App Store版のアプリを上書き」だったのね…

かんちがい。


Androidの場合


<状況>


  • まず、Playストアにある「リリース済みのアプリ」を実機にインストール。

  • Android StudioでRunボタン(ツールバーの緑の三角)を使用して上書きを試みる。

  • できない。エラー発生。


【エラー内容】

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3131333933352f63323061313338632d333262652d613862362d323635362d6533353366656530613862642e706e67.png

Application Installation Failed

Installation failed with message

INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES.

It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.

WARNING: UnInstalling will remove the application data!

Do you want to uninstall the existing application?

インストール済みのアプリと、上書きしようとしているアプリの証明書が違う事が原因らしい。

そのため、一旦アンインストールしてからアプリを入れ直せばエラーなくインストールできる。

しかし、それではストアに出ているアプリのアップデートテストにならない。


<他の方法でインストールテストを試みる>


  • まず、Playストアにある「リリース済みのアプリ」を実機にインストール。

  • デバック用のapkファイルを作成。


    • Android Studioの Build > Generate Signed APK

    • ModuleやKey storeを設定し、Build Typeを「debug」にしてapkファイルを作成



  • DeployGateに作成したapkファイルをアップ。

  • 実機でDeployGateの「インストール」ボタンをタップしようとしたが、できない。


    • 「署名が異なります」と表示される。

    • また、「異なる証明書で署名されたアプリ(バージョンXXX)が既にインストールされています。新しいアプリをインストールする前に、一度アンインストールしてください。」と表示される。



そのため、一旦アンインストールしてからアプリを入れ直せばエラーなくインストールできる。

しかし、それではストアに出ているアプリのアップデートテストにならない。


<解決方法1>


  • まず、Playストアにある「リリース済みのアプリ」を実機にインストール。

  • リリース用(またはデバック用)のapkファイルを作成。


    • Android Studioの Build > Generate Signed APK

    • ModuleやKey storeを設定し、Build Typeを「release」(または「debug」)にしてapkファイルを作成。



  • (Macのため)ターミナルで、まず作成したapkファイルがある場所まで移動。実機をPCにつないだ状態で下記を実行。

adb install -r ○○○○○.apk


  • できた!


<解決方法2>


  • まず、Playストアにある「リリース済みのアプリ」を実機にインストール。

  • リリース用のapkファイルを作成。


    • Android Studioの Build > Generate Signed APK

    • ModuleやKey storeを設定し、Build Typeを「release」にしてapkファイルを作成。



  • DeployGateに作成したapkファイルをアップ。

  • 実機でDeployGateの「インストール」ボタンをタップ。

  • できた!


<原因>

デバック用のアプリと、リリース用のアプリでは、証明書の署名が違うらしい。

そのため、DeployGateにアップしたデータ(デバック用のアプリ)と

リリース済みのアプリでは署名が違ってしまうため、エラーとなっていたみたい。

そんなわけで、DeployGateに「リリース用のアプリ」をアップすれば、うまくいきました。

また、ターミナルでインストールする時も、 -r を付け忘れるとエラーになりました。

これは既に同じ署名のapkファイルがインストールされている場合はエラーになることが原因らしいです。

-r をつけると上書きできるようになるみたいです。


<感想>

署名のエラーだったので、

証明書やキーチェーン関係を触らないといけないと思ったのですが、

触らずに済んで安心しました…。