簡體   English   中英

Xcode,Parse Crash Reporting,未創建dSYM文件

[英]Xcode, Parse Crash Reporting, dSYM file not created

我有一個iOS應用程序,使用Parse SDK 1.7.0在Xcode 6.2中用Swift編寫。 我已經完成了Parse Quick Start說明來設置崩潰報告(包括AppDelegate中的ParseCrashReporting.enable() ),但似乎我的運行腳本出現了問題。 錯誤是: App "/Users/ben/Library/Developer/Xcode/DerivedData/MyApp-ahydphsjgdgefbhcdodokcmofehe/Build/Products/Debug-iphonesimulator/MyApp.app.dSYM" wasn't found. Command /bin/sh failed with exit code 1 App "/Users/ben/Library/Developer/Xcode/DerivedData/MyApp-ahydphsjgdgefbhcdodokcmofehe/Build/Products/Debug-iphonesimulator/MyApp.app.dSYM" wasn't found. Command /bin/sh failed with exit code 1

據此,似乎Xcode沒有創建dSYM文件。 在我的構建設置>構建選項中,我已將調試信息格式更改為“帶有dSYM文件的DWARF”,用於調試和發布。 (以前,Debug設置為“DWARF”)

我應該在構建選項中更改其他內容嗎?

還有,這可能是問題嗎? export DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT=NO

這是我的運行腳本:

export PATH=/usr/local/bin:$PATH
cd $PROJECT_DIR/parse

parse symbols "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

提前感謝您提供有關如何解決此問題的任何想法。

編輯:感謝@udjat的回答,我能夠運行我的應用程序並運行腳本(下面),而不會崩潰。 並且由於Parse的一些錯誤修復,測試崩潰報告現在也在運行,盡管仍有很長的延遲。

新運行腳本:

echo "Parse Crash Reporting"
export PATH=/usr/local/bin:$PATH
CLOUD_CODE_DIR=${PROJECT_DIR}/parse

if [ -d ${CLOUD_CODE_DIR} ]; then
cd ${CLOUD_CODE_DIR}
parse symbols MyApp --path="${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
echo "Finished uploading symbol"
else
echo "Unable to upload symbols"
fi

AppDelegate中的崩潰測試:

func crash() {
    NSException(name:NSGenericException, reason:"Everything is ok. This is just a test crash.", userInfo:nil).raise()
}

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {

    ParseCrashReporting.enable()

    dispatch_after(
        dispatch_time(DISPATCH_TIME_NOW, Int64(5.0 * Double(NSEC_PER_SEC))),
        dispatch_get_main_queue(),
        { () -> Void in
            self.crash()
    });
}

在閱讀了@jairobjunior發布的Facebook鏈接之后,我在ÁrniJónReginsson的回答中找到了解決方案(至少對我自己而言)並進行了一些修改。

在Parse文檔中,您的運行腳本是:

export PATH=/usr/local/bin:$PATH
cd YOUR_PATH
parse symbols "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

相反,將其更改為:

echo "Parse Crash Reporting"
export PATH=/usr/local/bin:$PATH
CLOUD_CODE_DIR=${PROJECT_DIR}/ParseCloudCode(or wherever yours is)

if [ -d ${CLOUD_CODE_DIR} ]; then
    cd ${CLOUD_CODE_DIR}
    parse symbols YOUR_PARSE_APP_NAME --path="${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
    echo "Finished uploading symbol"
else
    echo "Unable to upload symbols"
fi

你的崩潰報告顯示在Parse上需要花費超過“一分鍾”的時間(花了我超過15分鍾)。 如果它完成上傳,它就會在那里,你只需要耐心等待。

這里有一個關於這個問題的公開主題: https//developers.facebook.com/bugs/587774604658221/

我有同樣的問題,甚至試圖手動它說文件“找不到”,但文件在那里。 我注意到的一件事是.dSYM不是文件,對我來說它似乎是一個文件夾/包。

我發現這個工作..

export PATH=/usr/local/bin:$PATH
cd YOUR_PATH
parse symbols AppName -p "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

將應用程序名稱和-p添加到解析行

對不起,我沒有評論的聲譽所以我會留下這個作為答案。

我遇到了確切的問題。 還使用最新的Parse SDK。 懷疑它是最新的CLI 2.0.0的問題,因為開發人員在更新到2.0.0后開始得到你正在獲得的問題(也是我得到的)

訂閱此Facebook錯誤報告帖子以獲得將來的解決方案。 https://developers.facebook.com/bugs/466020460223551/

此時似乎問題來自SDK。 所以除了等待Parse解決這個問題之外沒什么可做的。

(感謝@jairobjunior向我介紹Facebook錯誤報告頁面!)

只是想讓你知道你並不孤單:盡管我的DSYM似乎上傳得很好,但無論我做什么,我的任何應用程序的崩潰報告都沒有出現在parse.com上。 我花了一個小時檢查每個設置......一切看起來都不錯。 我和你一樣使用相同的測試崩潰...

所以,如果您發現崩潰的解決方案沒有出現在parse.com上,請在此處更新。 謝謝!

在我的情況下,問題可能是通過更改項目名稱創建的,無論如何使用以下腳本進行:

parse symbols MyAppName --path="${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

MyAppName位置是我在parse/config文件中找到的:

{
    "applications": {
        "MyAppName": {
            "applicationId": "....kjsldgjslkgjslkgj...",
            "masterKey": "....lksjmll242dg2d1g2..."
        },
        "_default": {
            "link": "MyAppName"
        }
    }
}

暫無
暫無

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

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