Help us understand the problem. What is going on with this article?

ストアに出ているアプリのアップデートテストをしようとしたら、つまった…困った…!【解決済み】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 をつけると上書きできるようになるみたいです。

<感想>

署名のエラーだったので、
証明書やキーチェーン関係を触らないといけないと思ったのですが、
触らずに済んで安心しました…。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away