2015-03-19 2 views
4

У меня есть приложение 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, Parse Crash Reporting, dSYM-файл не создан

В соответствии с этим, похоже, что Xcode не создает файл dSYM. В моих настройках сборки> Параметры сборки я изменил формат отладочной информации на «DWARF с файлом dSYM» для Debug и Release. (Ранее для параметра «Отладка» было установлено значение «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() 
    }); 
} 
+0

Вы абсолютно уверены, что поедете в нужный каталог? Я не вижу ничего плохого. Это работает для меня: [Отчет о сбое в сборе без работы] (http://stackoverflow.com/questions/28755933/parse-crash-reporting-not-working) – nick9999

+0

Кроме того, я заметил, что журнал включает в себя 'export DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT = NO' , Кажется, что изменить это на 'YES' может решить проблему, но я не могу найти, где ее изменить. Есть идеи? – blwinters

+0

Это, наверное, точная проблема. Я лично не знаю, чтобы исправить это, потому что у меня никогда не было этой проблемы, но я рассмотрю ее. – nick9999

ответ

8

После прочтения через Facebook link @jairobjunior публикуемого, я обнаружил, что исправление (по крайней мере для меня) в ответе Арни Йон Reginsson и модифицирован немного ,

В документе Разбор, ваш запустить скрипт:

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 минут). Если он закончит загрузку, он будет там, вам просто нужно быть терпеливым.

+0

См. Обновленный ответ. Некоторое время назад у меня была такая же ошибка, и я считаю, что мне удалось ее исправить. @blwinters – udjat

+0

Спасибо @udjat. Предложенный сценарий запуска, похоже, работает для создания файла dSYM. Тем не менее, когда я просматриваю процесс проверки при сбое в соответствии с [Документацией по анализу] (https://www.parse.com/docs/ios_guide#crashreporting-testing/iOS), в моей аналитике сбоя ничего не отображается. Я редактировал свой вопрос, чтобы показать новый скрипт запуска и краш-тест в AppDelegate. Не могли бы вы взглянуть на него? – blwinters

+0

@blwinters. Мне потребовалось несколько минут для просмотра отчетов о сбоях (> 15 минут) вместо «до минуты», как предлагает Parse в своих документах. Я предполагаю, что вам понадобится примерно то же самое время, чтобы появиться.:) – udjat

3

Существует открытая нить об этой проблеме здесь: https://developers.facebook.com/bugs/587774604658221/

У меня та же проблема, даже пытаясь сделать вручную, он говорит, что файл «не найден», но файл есть. Одна вещь, которую я заметил, это то, что .dSYM не является файлом, для меня это папка/пакет.

0

Извините, у меня нет репутации, чтобы комментировать, поэтому я оставлю это в качестве ответа.

У меня возникла проблема. Также используйте последнюю версию Parse SDK. Предполагается, что это проблема последнего CLI 2.0.0, так как разработчики начинают получать проблемы, которые вы получаете (а также я получаю) после обновления до 2.0.0

Подпишитесь на это сообщение об ошибке, посвященном ошибке в Facebook чтобы получить решение в будущем. https://developers.facebook.com/bugs/466020460223551/

В настоящий момент проблема заключается в SDK. Так что нечего делать, кроме как ждать, когда Parse исправит это.

(Спасибо @jairobjunior за представление мне страницу сообщения об ошибке Facebook!)

+0

Спасибо, Генри, я прокомментировал и подписался на эту тему. – blwinters

0

просто хотел сообщить, что вы не одиноки: хотя мой DSYM, кажется, загружается отлично, никакие отчеты о сбоях из любого из моих приложений никогда не появляются на parse.com, независимо от того, что я делаю. Я проверил час, проверяя каждую настройку ... все выглядит хорошо. Я использую тот же тест-крах, что и вы ...

Итак, пожалуйста, обновите здесь, если вы найдете решение проблем с сбоями, не появляющихся на parse.com. благодаря!

+0

Да, по какой-то причине у меня есть один отчет о сбоях (одно появление) с 29 марта в аналитике анализа, прежде чем я исправил другие проблемы, но я не смог создать новый отчет о сбоях. Я попытаюсь удалить все сборки/CLI/dSYM и переустановить, когда у меня будет время. Обновление – blwinters

+0

, спустя 5 часов: бум, внезапно появились отчеты о сбоях в синтаксическом анализе. Потребовалось 12 часов, чтобы последний появился ... так что подождите 12 часов после создания «исправлений», чтобы узнать, работает ли это. – xaphod

+0

Я только что проверил и нашел 29 новых случаев. Думаю, им пришлось прочистить трубы. – blwinters

0

В моем случае проблема, вероятно, создать, изменив название проекта, в любом случае, используя следующий скрипт сделал это:

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

Где MyAppName это было то, что я нашел в parse/config файле:

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

Я нашел, что это работает ..

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

Добавление имени приложения и -p в строку разбора

+0

это сработало и для меня. – mikebz

+0

Это работало без AppName – hammady

Смежные вопросы