Sentry命令列工具之ProGuard對映上傳
sentry-cli可用於將proguard檔案上傳到Sentry,但在大多數情況下,您可以使用gradle外掛來執行此操作。在某些情況下,您可以手動上傳proguard檔案(例如,當您只發布一些正在建立的構建時)。
一、基本上傳
upload-proguard命令是用於上載proguard檔案的命令。它採用一個或多個proguard對映檔案的路徑,並將它們上傳到Sentry。如果您想將它們與Android應用相關聯,您還應該將其指向來自構建中間資料夾的已處理AndroidManifest.xml。例:
sentry-cli upload-proguard \ --android-manifest app/build/intermediates/manifests/full/release/AndroidManifest.xml \ app/build/outputs/mapping/release/mapping.txt
由於sentry-java客戶端需要知道對映檔案的UIUD,因此需要將其嵌入到sentry-debug-meta.properties檔案中。如果提供自動完成的--write-properties:
sentry-cli upload-proguard \ --android-manifest app/build/intermediates/manifests/full/release/AndroidManifest.xml \ --write-properties app/build/intermediates/assets/release/sentry-debug-meta.properties \ app/build/outputs/mapping/release/mapping.txt
二、上傳選項
--no-reprocessing
此引數可防止Sentry立即觸發重新處理。 在極少數情況下,如果您希望以多個批次上載檔案,並且希望確保Sentry在上載某些可選的dsyms之前不開始重新處理,則它非常有用。 請注意,雖然有人仍然可以在此期間觸發從UI重新處理。
--no-upload
禁用實際上傳。 這將執行處理的所有步驟,但不會觸發上載(這也會自動禁用重新處理。如果您只想驗證對映檔案並將proguard UUID寫入proeprties檔案,這非常有用.
-- required-one
至少需要 一個要上傳的檔案或命令將出錯。
三、UUID格式
與大多數除錯資訊檔案不同,proguard檔案本身不攜帶可用於唯一標識檔案的唯一識別符號。由於這會導致不必要的複雜性,因此我們根據檔案的校驗和為檔案提供SHA1 UUID。您可以對proguard檔案使用sentry-cli difutil檢查以檢視生成的UUID。
如果您想自己生成UUID,可以使用以下演算法(Python程式碼供參考):
import uuid
NAMESPACE = uuid.uuid5(uuid.NAMESPACE_DNS, "guardsquare.com")
def get_proguard_uuid(filename):
with open(filename, 'rb') as f:
return uuid.uuid5(NAMESPACE, f.read())