2016-09-19 108 views
3

我通過cocoa pod將firebase崩潰報告集成到了我的應用中。我創建了運行腳本分機。iOS Firebase崩潰報告上傳符號文件

所以它現在工作。但我的問題是,每次我嘗試構建並運行應用程序時,即使在模擬器中,它也會嘗試上載Symbol文件,而且構建和運行應用程序需要太多時間。

我以前使用過曲棍球的應用程序。而在曲棍球應用程序中,我正在使用曲棍球應用程序的mac應用程序上傳符號文件。例如,當我的開發和開發人員測試完成後,我發佈add hoc build,然後我將符號文件發送給曲棍球應用程序。

所以我的問題是:什麼是Firebase崩潰報告的最佳用例流程?我可以在發佈add hoc或App Store發佈之前上傳符號文件嗎? (不是每一次)

或者是否可以在模擬器版本中禁用符號文件上傳的「運行腳本」。

回答

1

如果不想每次都不必運行腳本。最小限度地,你應該運行一次每個構建到商店。您可以在應用程序發佈到商店之前上傳。

+0

所以你建議;刪除運行腳本並在執行add hoc和app store發佈時添加它。我理解正確嗎? 但我需要自動化這個流程。可能嗎? –

+0

您不必刪除任何東西。只需在需要的時候手動或從其他腳本運行它。 –

3

看來你正在尋找的東西是這樣的:

if [ ${PLATFORM_NAME} != "iphonesimulator" ]; then 
    echo "Uploading Firebase Crash Symbols..." 

    # Replace this with the GOOGLE_APP_ID from your GoogleService-Info.plist file 
    GOOGLE_APP_ID=1:my:app:id 

    # Replace the /Path/To/ServiceAccount.json with the path to the key you just downloaded 
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "/Path/To/ServiceAccount.json" 
fi 

所以,在最起碼,它只能運行和上傳的符號,當你正在爲任何不是模擬器。

+0

謝謝,這是很好的答案。但它不能解決我的問題。因爲我有2配置1是調試和1是釋放。調試連接到測試和發佈連接到生產環境。 所以我也發送測試 - addhoc構建,它需要被跟蹤。所以我的問題是我只是想防止發送符號文件,當我使用模擬器。可能嗎? –

+0

啊,我明白了。這是有道理的,是的。我相應地更新了我的答案。 – dbburgess

3

這將僅適用於release生成配置上傳符號:

echo configuration is $CONFIGURATION 

if [ $CONFIGURATION == Release ]; then 

    echo uploading symbols 

    # Replace this with the GOOGLE_APP_ID from your GoogleService-Info.plist file 
    GOOGLE_APP_ID=1:************ 

    # Replace the /Path/To/ServiceAccount.json with the path to the key you just downloaded 
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}/GoogleServiceAccount.json" 

else 

    echo skipping symbols upload 

fi 
+0

對我的環境沒有幫助。當我運行釋放模式xcode hungs時,它自行運行定製shell腳本。在開發模式下一切正常 – Kingalione

+0

@Kingalione你可能想檢查你的構建日誌。 Bash的if-then不太可能掛一些東西。 –

5

所以我「安裝時運行腳本只」簽上我的符號載運行腳本只保留。

這確保了它只會在歸檔應用程序時運行,而不是在開發過程中(例如,當我們的應用程序進入狂野時)。

screenshot

+1

我以爲我會破壞這個人,認爲「僅在安裝時運行腳本」也會在安裝設備上進行安裝時觸發,但是不會,這僅在存檔時纔有效。我不確定該複選框背後的邏輯是什麼,但這是一個有效的答案! –