web-dev-qa-db-ja.com

リリース用に署名されたapkをデバッグする方法は?

Android Marketに署名してアップロードし、携帯電話にインストールしたapkがあります。このリリースapkを(Eclipseを使用して)デバッグし、携帯電話で実行したいと思います。私は以前にこれを行いました(Android開発ツールの1つ、おそらくDalvik Debug Monitorを使用していたことを覚えています)が、残念ながらそれを行う方法を思い出せず、オンラインで記事を見つけることができませんでした。誰もこれをどのように行うことができるか知っていますか?

注: IhaveマニフェストでAndroid:debuggable="true"を設定し、携帯電話でUSBデバッグを有効にしました。

95
Adil Hussain

マニフェストファイルのapplicationタグにAndroid:debuggable="true"が設定されていることを確認してから、次の操作を行います。

  1. 電話機をコンピュータに接続し、電話機でUSBデバッグを有効にします
  2. Eclipseと、アプリのコードを含むワークスペースを開きます
  3. Eclipseで、Window-> Show View-> Devicesに移動します
  4. 表示されるはずのデバイスビューを見ると、デバイスがリストされているはずです。
  5. デバイスがリストにない場合は、続行する前に携帯電話のADBドライバーを追跡する必要があります
  6. コードをステップ実行する場合は、アプリのどこかにブレークポイントを設定します
  7. スマートフォンでアプリを開きます
  8. デバイスビューで、電話機のエントリがまだ展開されていない場合は展開し、アプリのパッケージ名を探します。
  9. パッケージ名をクリックすると、デバイスビューの右上に緑色のバグと他のいくつかの小さなボタンが表示されます。緑色のバグをクリックします。
  10. これで、アプリを添付/デバッグする必要があります。
66
Sam Dozor

これは古い質問ですが、今後の参考資料です。 Gradleを使用したAndroid St​​udioの場合:

buildTypes {
    release {
        debuggable true
        runProguard true
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
    }
}

debuggable trueという行は私にとってのトリックでした。

更新:

Gradle 1.0以降は、minifyEnabledではなくrunProguardです。 こちら を見てください

109
Manuel Lopera

マニュエルの方法以外にも、マニフェストを使用できます。

Android St​​udio安定版では、applicationファイルのAndroidManifestに次の2行を追加する必要があります。

    Android:debuggable="true"
    tools:ignore="HardcodedDebugMode"

1つ目は署名されたAPKのデバッグを有効にし、2つ目はコンパイル時エラーを防ぎます。

この後、「デバッガーを[Androidプロセスにアタッチ]ボタン」を使用してプロセスにアタッチできます。

37
sandalone

私は以下を試してみましたが、うまくいきました:

release {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
8
Shylendra Madda

以下をアプリbuild.gradleに追加し、指定されたリリースビルドバリアントを選択して実行します

signingConfigs {
        config {
            keyAlias 'keyalias'
            keyPassword 'keypwd'
            storeFile file('<<KEYSTORE-PATH>>.keystore')
            storePassword 'pwd'
        }
    }
    buildTypes {
      debug {
          debuggable true
          signingConfig signingConfigs.config
          proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
        }
    }

既に市販されているがデバッグ可能に割り当てられていないデバッグyourapkを決定し、再度公開したくない場合。以下の手順に従ってください。

  1. ApkTool (例:apktool d <APK_PATH>)でApkを逆コンパイルします
  2. デコンパイルされたファイルからAndroidManifest.xmlを開きます
  3. applicationタグにAndroid:debuggable="true"を設定します
  4. 変更されたソースをApkToolでコンパイルします(例:apktool b <MODIFIED_PATH>
  5. デバッグ可能なapk ready(署名なしはストアを公開できないことを意味します)。必要に応じてデバッグできます。