1. 程式人生 > >Sentry命令列工具之ProGuard對映上傳

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())