2016-05-30 2 views
1

Я пытаюсь настроить новую аварийную запись Firebase via their docs и работает с ошибкой. Когда я построить проект, я получаю эту ошибку из фазы запуска сценария:Отчет о сбоях Firebase в iOS дает ошибку сборки. SymbolFileMappings: upsert: Request содержит недопустимый аргумент. "

Pods/FirebaseCrash/upload-sym-util.bash:384: error: symbolFileMappings:upsert: Request contains an invalid argument. 

После отладки немного я нашел VERBOSE флаг и установить, что для получения дополнительной информации, как показано ниже (ключи удалены)

/Pods/FirebaseCrash/upload-sym-util.bash:376: note: another thing 
== Info: Trying 216.58.216.47... 
== Info: Connected to mobilecrashreporting.googleapis.com (216.58.216.47) port 443 (#0) 
== Info: TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 
== Info: Server certificate: *.googleapis.com 
== Info: Server certificate: Google Internet Authority G2 
== Info: Server certificate: GeoTrust Global CA 
=> Send header, 413 bytes (0x19d) 
0000: POST /v1/apps/1:000000000000:ios:0000000000000000/symbolFileMapp 
0040: ings:upsert?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX HTTP/1.1 
0082: Host: mobilecrashreporting.googleapis.com 
00ad: User-Agent: curl/7.43.0 
00c6: Accept: */* 
00d3: Content-Type: application/json 
00f3: X-Ios-Bundle-Identifier: com.jakecraige.Inventry 
0125: Authorization: Bearer XXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
0165: XXXXXXXXXXXXXXXXXXXXXXXXXXX-XXX 
0186: Content-Length: 186 
019b: 
=> Send data, 186 bytes (0xba) 
0000: {"upload_key":"1:000000000000:ios:0000000000000000-00000000-0000 
0040: -0000-0000-000000000000","symbol_file_mapping":{"symbol_type":2, 
0080: "app_version":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}} 
== Info: upload completely sent off: 186 out of 186 bytes 
<= Recv header, 26 bytes (0x1a) 
0000: HTTP/1.1 400 Bad Request 
<= Recv header, 16 bytes (0x10) 
0000: Vary: X-Origin 
<= Recv header, 15 bytes (0xf) 
0000: Vary: Referer 
<= Recv header, 47 bytes (0x2f) 
0000: Content-Type: application/json; charset=UTF-8 
<= Recv header, 37 bytes (0x25) 
0000: Date: Mon, 30 May 2016 21:47:10 GMT 
<= Recv header, 13 bytes (0xd) 
0000: Server: ESF 
<= Recv header, 24 bytes (0x18) 
0000: Cache-Control: private 
<= Recv header, 33 bytes (0x21) 
0000: X-XSS-Protection: 1; mode=block 
<= Recv header, 29 bytes (0x1d) 
0000: X-Frame-Options: SAMEORIGIN 
<= Recv header, 33 bytes (0x21) 
0000: X-Content-Type-Options: nosniff 
<= Recv header, 30 bytes (0x1e) 
0000: Alternate-Protocol: 443:quic 
<= Recv header, 69 bytes (0x45) 
0000: Alt-Svc: quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26, 
0040: 25" 
<= Recv header, 21 bytes (0x15) 
0000: Accept-Ranges: none 
<= Recv header, 30 bytes (0x1e) 
0000: Vary: Origin,Accept-Encoding 
<= Recv header, 28 bytes (0x1c) 
0000: Transfer-Encoding: chunked 
<= Recv header, 2 bytes (0x2) 
0000: 
<= Recv data, 138 bytes (0x8a) 
0000: 7f 
0004: {. "error": {. "code": 400,. "message": "Request contains 
0044: an invalid argument.",. "status": "INVALID_ARGUMENT". }.}. 
0085: 0 
0088: 
== Info: Connection #0 to host mobilecrashreporting.googleapis.com left intact 
/Pods/FirebaseCrash/upload-sym-util.bash:385: note: symbolFileMappings:upsert: The metadata for the symbol file failed to update. 

Так что похоже, что POST до mobilecrashreporting.googleapis.com/v1/apps/$GOOGLE_APP_ID/symbolFileMappings:upsert?key=$FIREBASE_API_KEY терпит неудачу.

Просмотрев все параметры, они, похоже, совпадают с моей конфигурацией, и ничто не пусто, поэтому я не уверен, что делать дальше.

Неужели кто-то еще сталкивается с этим? Идея о том, как это исправить?

Спасибо!

ответ

1

В отчете о сборке, когда вы работаете на verbose = 3 ('-vvv'), вы видели что-то вроде следующих строк?

CrashTestApp (architecture x86_64) symbol dump follows (first 20 lines): 
MODULE mac x86_64 5FFC1B5C32CF33EEB4BFFA4189412AE30 CrashTestApp 
FILE 0 /Applications/Xcode.app/… 
⋮ 
FILE 4 /Users/me/Source/CrashTestApp/… 
FUNC 1bf0 54 0 -[ViewController viewDidLoad] 
1bf0 14 11 4 
1c04 30 12 4 
⋮ 

(Числа и имена файлов, очевидно, будет отличаться.) Ключ волшебный узор в первой строке: она должна начинаться с MODULE следуют типа машины и архитектуры (отдельные слова), за которым следует 33 разрядную шестнадцатеричную строку, а затем имя приложения. Если загрузка файла не соответствует этому шаблону, то шаг upsert завершается с ошибкой.

+0

Эй Роберт, это то, что я вижу в этой строке 'МОДУЛЬ макинтош x86_64 45FA3BDF3866336FACCE04D28744BAF30 Inventry' – jakecraige

+0

Я на самом деле видим две разные строки так,' МОДУЛЬ макинтош x86_64 45FA3BDF3866336FACCE04D28744BAF30 Inventry' и 'МОДУЛЬ макинтош x86_64 45FA3BDF3866336FACCE04D28744BAF30 Inventry. ФАЙЛ', возможно, это второй виновник? Там что-то странное происходит с новостями. Здесь немного больше контекста: https://gist.github.com/jakecraige/79ac463e7da0e5605bdf502bdd0edf47 – jakecraige

+3

@ robert-menke У меня такая же проблема, и после завершения работы над verbose = 3 было проверено, что файлы в стиле МОДУЛЬ были в порядке. * Однако *, он показал, что аргументы передаются для upsert, и один из них, 'app_version', вызывает ошибку. В моем случае я делал отладочную сборку, а моя версия для отладки - '3.7-dev' (т. Е. Не все числа и точки). Изменение этого параметра на '3.7' делает запрос upsert завершен успешно. Мне было бы интересно узнать, есть ли у @jakecraige аналогичная проблема с версией приложения. –