Google PlayのAPKの使用アプリケーション内のアップグレード後、インストールは問題の現在のバージョンと互換性がない失敗します

、アップグレードする2つの方法を使用すると、Google Playからアプリをアップグレードする準備ができたら、

1.アップロードGoogle Playでのアップグレードの新しい更新されたバージョン。

2.検出は、プロンプトに新しいバージョンのアップデートでポップ。

何の問題を見ていないには二つの方法がありますが、はいを無視一つのこと。Google Playのアプリストアあなたは、アップロードを開始した場合にAPKを提供するために、Googleのプレイを使用することを選択した新しいキーを署名し、それがこのオプションはいくつかの利点を持っているので店は、通常チェックし、二次署名をアップロードすることができますを意味します。

  • アプリのサイズを小さくし、
  • インスタントは、所望の機能性を提供すること。
  • 無料のインストールエクスペリエンスを提供します(または、背景がデフォルトでインストールされてダウンロードされた店舗のアップデートでクリックする必要があり、インストールインタフェースが表示されません)

そして、後に長い時間が経過した後、あなたのアプリケーションは、反復時間ので、アップグレードする必要があります。虎と食事激しいを操作する、他のバージョンをアップロードするには、Googleプレイに行き、自分のサーバーにアプリケーション内でバージョンアップを押してください。少し注意の問題が生じた。この時点で、アプリケーション署名によって引き起こさインストールの失敗にバインドされています。

どのように解決するには?

  1. あなたがGoogle Playで2人の署名を使用しているかどうかを知るために、2 APK、バージョン管理があるだろう - >オリジナルと派生のAPK APK(Googleの二次署名APK)になりますライブラリの結果をダウンロードする]をクリックし、アプリケーションだけで放出された場合Googleのストアは、その後、いいえ、あなたは二次署名は、アプリケーション内で更新をダウンロードするように指示され、バックエンドサーバーにプッシュされ、他の店でAPKダウンロードを、導くことができます。
  2. Google Playのにアップロードしたときに最初に開始した、Googleが第2の署名を使用しません。これは、アプリケーションのバージョンアップ内で直接使用することができます
3.あなたは、チャンネル名はGOOGLE_PLAYであるかどうかを判断するために、強いリットルだけでなく、アップグレード時に複数のチャネルを使用している場合。Google Playでの必要性は、チャンネルを除外するために、あなたは、アプリ内のポップアップウィンドウをアップグレードするかどうかを判断するために、現在のAppチャンネル番号と、現在のチャンネルを取得する必要があります。
AndroidManifest.xml
 
 <meta-data
      android:name="CHANNEL"
      android:value="${CHANNEL_NAME}" />
    -------------------------------------------
 build.gradle 
 
 productFlavors {
   googleplay {
       manifestPlaceholders = [CHANNEL_NAME: "google_play"]
   }
   official{
       manifestPlaceholders = [CHANNEL_NAME: "official"]
   }
}
   --------------------------------------------
 

/**
 * 获取app当前的渠道号或application中指定的meta-data
 *
 * @return 如果没有获取成功(没有对应值,或者异常),则返回值为空
 */
public static String getAppMetaData(Context context, String key) {
    if (context == null || TextUtils.isEmpty(key)) {
        return null;
    }
    String channelNumber = null;
    try {
        PackageManager packageManager = context.getPackageManager();
        if (packageManager != null) {
            ApplicationInfo applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
            if (applicationInfo != null) {
                if (applicationInfo.metaData != null) {
                    channelNumber = applicationInfo.metaData.getString(key);
                }
            }
        }
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    return channelNumber;
}

Googleが提供する二次署名、マップをトリガすることは他の問題を示していませんか?

Googleマップの利用を含めると、マッピングしたり、それは間違って行くことができないように、他のマップには、SHA1署名証明書では、Googleのプレイにすると、背景の設定SHA1、SHA1フィルの時間価値のアプリケーションに使用することはできません。

これは、推奨
ローカルSHA1値を、
署名SHA1値の後に;
のSHA1値の後に店に重い署名証明書を発行した
3つのマップがバックグラウンドで設定されています。これはテストであるかどうか、パッケージが公開またはそうでなければ、誤った表示されていないことが原因で発生SHA1値をマッピングすることはありません。その他は、使用SHA1構成に第三者も同じ理由である必要があります。

Googleマップの設定SHA1は、私の記事を見ることができます

公開された26元の記事 ウォン称賛19 ビュー40000 +

おすすめ

転載: blog.csdn.net/a23006239/article/details/90899136