2016-04-25 1 views
0

私はターゲットのAPIが23であるアプリストアでアプリをリリースしました。ユーザーは私のアプリに直ちに23のデバイスでクラッシュすることを知らせる連絡を受けました。リサーチした後、ライブラリは私のアプリがクラッシュするターゲットは23です。私はエラーを修正する22に目標を設定しましたが、今ではGoogleプレイでアプリを更新できません。"これまでM権限(ターゲットSDK 23以上)を使用していたデバイスをダウングレードすることは禁じられています古いスタイルのアクセス許可を使用するAPK(ターゲットSDK 22以下)ターゲットダウングレード

これは有料アプリなので、店舗から削除して新しい名前で再発行することはできません。誰もこれに前に実行?何かアドバイス?

答えて

1

エラーメッセージには、targetSdkVersionを23に設定すると、Android 6.0's runtime permissionsが使用され、古いtargetSdkVersionをダウングレードすることはできません。で述べたように

Picking your compile, min, and targetSdkVerison blog post:あなたが導入されたすべての新機能を使用する必要がありますもあなたが盲目的にテストを行わずに、あなたのtargetSdkVersionを更新する必要がありますという意味ではありません

- てください、くださいテストあなたのtargetSdkVersionを更新する前に!あなたのユーザーはあなたに感謝します。

API 23のターゲティングを特に禁止するライブラリを削除し、request dangerous permissions at runtimeを確実にするライブラリのAPI 23との互換性を更新する必要があります。

+0

これはアルファチャンネルにも当てはまり、不可能ではないにしても不必要に難しくなります* ALPHA USERSへの継続的な配信を使用する*。これはちょうどひどいです。 – user239558

+0

@ user239558 - あなたは間違いなくそれを続けることができます。アルファバージョンコードがプロダクションバージョンコードよりも高くなっていることを確認してください。私は強く、あなたのバージョンコードのプレフィックスを常に自動的にインクリメントするよりもむしろ何かをリリースすることを提案します。これは、1日目以降のドキュメントでは推奨されています – ianhanniballake

+0

これはバージョンコードではなくターゲットとなるsdkバージョンです。 – user239558

0

ダウングレードの代わりに、サポートされているバージョンにコードの一部を関連付けるための条件を追加できます。

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M){ 
     //put whole code here if nothing supported for 23+ 
    }