Xcode, Parse Crash Reporting, файл dSYM не создан
У меня есть приложение для iOS, написанное на Swift в Xcode 6.2, использующее Parse SDK 1.7.0. Я прошел инструкции Parse Quick Start для настройки отчетов о сбоях (включаяParseCrashReporting.enable()
в AppDelegate), но кажется, что мой скрипт запуска имеет проблему. Ошибка: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 с файлом dSYM» для отладки и выпуска. (Ранее для 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()
});
}