[英]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.