簡體   English   中英

Android App Crawler 不工作 -> 權限拒絕失敗

[英]Android App Crawler not working -> Permission Denial failure

我試圖在本地運行應用程序爬蟲,以測試在 Android Studio 中創建的機器人腳本。

我按照這篇方便的文章 ( https://android.jlelse.eu/test-robo-scripts-locally-useful-for-firebase-test-lab-pre-launch-reports-41da83d5769f ) 遇到了一個問題,其中爬蟲剛才說抓取開始,抓取立即完成。 對於這個問題,我在谷歌上找不到任何答案。

這是日志中的錯誤:

Permission Denial: starting instrumentation ComponentInfo{androidx.test.tools.crawler/androidx.test.tools.crawler.CrawlMonitor} from pid=3778, uid=3778 not allowed because package androidx.test.tools.crawler 沒有簽名匹配目標 androidx.test.tools.crawler.stubapp

我終於想出了一個解決方案,所以我提出這個問題是為了幫助那些可能像我一樣被困住的人。 聽起來有些人在這個問題上有同樣的問題( https://stackoverflow.com/a/58631206/13071692

我發現這個錯誤正在出現,因為我使用的是我的應用程序的調試 apk 版本。 它需要一個簽名版本,所以一旦我在 android 工作室(Build > Generate Signed Bundle...)創建了一個簽名版本,它工作得很好

我遇到了同樣的問題:就我而言,我需要做兩件事。

1.提供keystore參數

我沒有向應用爬蟲提供正確的signingConfig憑據,因此出現錯誤: does not have a signature matching the target

我當時使用的是調試版本,認為這不可能是問題,因為我的默認 buildType 沒有設置 signingConfig - 它看起來像這樣:

buildTypes {
  debug {
    debuggable true
  }
  ...
}

我錯了,因為項目定義了一個 signingConfigs.debug 值,然后隱式用作調試的 signingConfig(參見https://stackoverflow.com/a/28512848/6007104 )。

因此,我將--key-store--key-store-password參數添加到java -jar crawl_launcher.jar命令,其值與我的signingConfigs.debug配置相匹配。

2.手動安裝

我在日志中進一步查看並找到一行: Unable to find instrumentation target package <my.package> 為了解決這個問題,我手動安裝了應用程序並測試了 apks,而不是依賴應用程序爬蟲為我做這件事。

我使用./gradlew assembleDebug生成了應用程序 apk,使用 ./gradlew ./gradlew connectedDebugAndroidTest生成了測試 apk,然后在設備上手動安裝了這兩個 apk(首先是應用程序,然后是測試)。 然后我運行了應用程序爬蟲。

結論

這是我每次想要啟動應用程序爬蟲時所做的。

  • 卸載舊工件:
adb uninstall androidx.test.tools.crawler
adb uninstall androidx.test.tools.crawler.stubapp
adb uninstall <my.package>
  • 生成應用程序 apk: ./gradlew assembleDebug

  • 生成測試apk: ./gradlew connectedDebugAndroidTest

  • 安裝應用apk,然后安裝測試apk(你可以使用adb)

  • 從解壓縮的應用程序爬蟲目錄運行應用程序爬蟲。 使用--app-package-name參數而不是--apk-file參數。 如果需要,請確保--key-store--key-store-password

java -jar crawl_launcher.jar --android-sdk <my/sdk/location> --app-package-name <my.package> --key-store <my/location/debug.keystore> --key-store-password <mypassword>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM