Xcode,解析崩溃报告,未创建 dSYM 文件
Xcode, Parse Crash Reporting, dSYM file not created
我有一个 iOS 应用程序,使用 Parse SDK 1.7.0 在 Xcode 6.2 中用 Swift 编写。我已经阅读了用于设置崩溃报告的 Parse 快速入门说明(包括 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
。
据此看来,Xcode 并未创建 dSYM 文件。在我的构建设置 > 构建选项中,我已将调试和发布的调试信息格式更改为 "DWARF with dSYM file"。 (以前,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()
});
}
这里有一个关于这个问题的开放线程:https://developers.facebook.com/bugs/587774604658221/
我遇到了同样的问题,即使尝试手动操作它也显示文件 "wasn't found",但文件在那里。我注意到的一件事是 .dSYM 不是文件,对我来说它似乎是 folder/package.
抱歉,我没有发表评论的名誉,所以我会留下这个作为答案。
我得到了确切的问题。还使用最新的 Parse SDK。怀疑这是最新的 CLI 2.0.0 的问题,因为开发人员在更新到 2.0.0
后开始遇到你遇到的问题(我也遇到了)
订阅此 Facebook 错误报告 post 以获取未来的解决方案。
https://developers.facebook.com/bugs/466020460223551/
目前看来是SDK的问题。所以除了等待 Parse 解决这个问题之外别无他法。
(感谢@jairobjunior 向我介绍 Facebook 错误报告页面!)
阅读完 Facebook link @jairobjunior 发布的内容后,我在 Árni Jón Reginsson 的回答中找到了解决方法(至少对我自己而言)并进行了一些修改。
在 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 上所花费的时间远远超过 "up to one minute"(我花了超过 15 分钟)。上传完了就会有的,耐心点就好了。
只是想让您知道您并不孤单:虽然我的 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"
}
}
}
我发现这个很管用..
export PATH=/usr/local/bin:$PATH
cd YOUR_PATH
parse symbols AppName -p "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
将应用程序名称和 -p 添加到解析行
我有一个 iOS 应用程序,使用 Parse SDK 1.7.0 在 Xcode 6.2 中用 Swift 编写。我已经阅读了用于设置崩溃报告的 Parse 快速入门说明(包括 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
。
据此看来,Xcode 并未创建 dSYM 文件。在我的构建设置 > 构建选项中,我已将调试和发布的调试信息格式更改为 "DWARF with dSYM file"。 (以前,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()
});
}
这里有一个关于这个问题的开放线程:https://developers.facebook.com/bugs/587774604658221/
我遇到了同样的问题,即使尝试手动操作它也显示文件 "wasn't found",但文件在那里。我注意到的一件事是 .dSYM 不是文件,对我来说它似乎是 folder/package.
抱歉,我没有发表评论的名誉,所以我会留下这个作为答案。
我得到了确切的问题。还使用最新的 Parse SDK。怀疑这是最新的 CLI 2.0.0 的问题,因为开发人员在更新到 2.0.0
后开始遇到你遇到的问题(我也遇到了)订阅此 Facebook 错误报告 post 以获取未来的解决方案。 https://developers.facebook.com/bugs/466020460223551/
目前看来是SDK的问题。所以除了等待 Parse 解决这个问题之外别无他法。
(感谢@jairobjunior 向我介绍 Facebook 错误报告页面!)
阅读完 Facebook link @jairobjunior 发布的内容后,我在 Árni Jón Reginsson 的回答中找到了解决方法(至少对我自己而言)并进行了一些修改。
在 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 上所花费的时间远远超过 "up to one minute"(我花了超过 15 分钟)。上传完了就会有的,耐心点就好了。
只是想让您知道您并不孤单:虽然我的 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"
}
}
}
我发现这个很管用..
export PATH=/usr/local/bin:$PATH
cd YOUR_PATH
parse symbols AppName -p "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
将应用程序名称和 -p 添加到解析行