Xamarin.iOS: Нужна помощь в решении отчета о сбое от Apple

#ios #xamarin #xamarin.ios

#iOS #xamarin #xamarin.ios

Вопрос:

Apple отклонила мое приложение, потому что, по их словам, при запуске произошел сбой, и посоветовала мне протестировать на устройстве (что я уже сделал). Я не могу воспроизвести сбой со своей стороны, поскольку приложение отлично запускается на различных устройствах и всех симуляторах. Я просмотрел предоставленный ими отчет о сбое, но у меня возникли проблемы с расшифровкой, в чем именно заключается проблема. Вот что он показывает:

 Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0

Application Specific Information:
abort() called

Thread 0 name:  tid_303  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x000000023464b104 __pthread_kill   8
1   libsystem_pthread.dylib         0x00000002346c7020 pthread_kill$VARIANT$mp   380
2   libsystem_c.dylib               0x00000002345a2e1c __abort   152
3   libsystem_c.dylib               0x00000002345a2d84 __abort   0
4   MyAppName                       0x00000001026bfce8 print_callback(char const*, int)   3226856 (runtime.m:1215)
5   MyAppName                       0x00000001026ba9a8 monoeg_g_log   3205544 (goutput.c:125)
6   MyAppName                       0x0000000102586ab0 load_aot_module   1944240 (aot-runtime.c:2117)
7   MyAppName                       0x00000001025d5744 mono_assembly_load_from_predicate   2266948 (assembly.c:2455)
8   MyAppName                       0x00000001025d5284 mono_assembly_open_predicate   2265732 (assembly.c:2028)
9   MyAppName                       0x00000001026bf544 xamarin_open_and_register   3224900 (runtime.m:943)
10  MyAppName                       0x00000001026c5b7c xamarin_main   3251068 (monotouch-main.m:434)
11  MyAppName                       0x00000001023b8854 main   51284 (main.m:40)
12  libdyld.dylib                   0x00000002344febb4 start   4
  

Обновить:

Я только что получил случайный сбой при запуске в симуляторе iPad Pro. Не удалось воспроизвести это снова, но вот информация, которую я получил из отчета, когда это произошло. Не уверен, связано ли это с отчетом о сбое выше от Apple или нет.

 MonoTouch: Could not install sigaction override, unexpected sigaction implementation.
MyAppName[3634:224014] [ApplicationLifecycle] Windows were created before application initialzation completed. This may result in incorrect visual appearance.
MyAppName[3634:224014] RPCTimeout.mm:55:_ReportRPCTimeout: Start: Mach message timeout. Apparently deadlocked. Aborting now.

MyAppName[3634:224014] critical: Stacktrace:
MyAppName[3634:224014] critical:   at <unknown> <0xffffffff>
MyAppName[3634:224014] critical:   at (wrapper managed-to-native) ObjCRuntime.Messaging.objc_msgSend (intptr,intptr,intptr,bool) [0x0000b] in <bbd12705940f4bb29392519af87b535b>:0
MyAppName[3634:224014] critical:   at SpriteKit.SKAction.PlaySoundFileNamed (string,bool) [0x00024] in <bbd12705940f4bb29392519af87b535b>:0
MyAppName[3634:224014] critical:   at MyAppName.Game.LoadSoundsIntoMemory () [0x00000] in <1d73fc98fddc46f793f1fd5f7904e89b>:0
MyAppName[3634:224014] critical:   at MyAppName.ViewController.ViewWillLayoutSubviews () [0x00046] in <1d73fc98fddc46f793f1fd5f7904e89b>:0
MyAppName[3634:224014] critical:   at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) [0x0001e] in <2b439461a53d406abf16d6e5e34ece7f>:0
MyAppName[3634:224014] critical:   at <unknown> <0xffffffff>
MyAppName[3634:224014] critical:   at (wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain (int,string[],intptr,intptr) [0x00051] in <bbd12705940f4bb29392519af87b535b>:0
MyAppName[3634:224014] critical:   at UIKit.UIApplication.Main (string[],intptr,intptr) [0x00005] in <bbd12705940f4bb29392519af87b535b>:0
MyAppName[3634:224014] critical:   at UIKit.UIApplication.Main (string[],string,string) [0x0002c] in <bbd12705940f4bb29392519af87b535b>:0
MyAppName[3634:224014] critical:   at MyAppName.AppDelegate.Main (string[]) [0x00000] in <1d73fc98fddc46f793f1fd5f7904e89b>:0
MyAppName[3634:224014] critical:   at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) [0x0004e] in <1d73fc98fddc46f793f1fd5f7904e89b>:0
MyAppName[3634:224014] critical: 

Native stacktrace:
MyAppName[3634:224014] critical:    0   MyAppName                           0x00000001034aae74 mono_handle_native_crash   244
MyAppName[3634:224014] critical:    1   libsystem_platform.dylib            0x000000010f74bb3d _sigtramp   29
MyAppName[3634:224014] critical:    2   libsystem_pthread.dylib             0x000000010f759570 libsystem_pthread.dylib   1392
MyAppName[3634:224014] critical:    3   libsystem_c.dylib                   0x000000010f4d7c45 abort   127
MyAppName[3634:224014] critical:    4   AudioToolbox                        0x0000000118021884 _Z17_ReportRPCTimeoutPKci   181
MyAppName[3634:224014] critical:    5   AudioToolbox                        0x0000000117c84c3e _Z14_CheckRPCErrorPKcii   206
MyAppName[3634:224014] critical:    6   AudioToolbox                        0x0000000117c89fb1 _ZN10AURemoteIO5StartEv   513
MyAppName[3634:224014] critical:    7   AudioToolbox                        0x0000000118036b9d _ZL13AUMethodStartPv   63
MyAppName[3634:224014] critical:    8   AudioToolbox                        0x0000000117e7d991 _ZN14AudioUnitGraph5StartEv   305
MyAppName[3634:224014] critical:    9   OpenAL                              0x00000001283377e7 _ZN9OALDevice14ConnectContextEP10OALContext   755
MyAppName[3634:224014] critical:    10  OpenAL                              0x0000000128334840 _ZN10OALContext20ConnectMixerToDeviceEv   98
MyAppName[3634:224014] critical:    11  OpenAL                              0x00000001283385e0 alcMakeContextCurrent   379
MyAppName[3634:224014] critical:    12  SpriteKit                           0x0000000105636182  [SKPlaySound playSoundFileNamed:atPosition:waitForCompletion:]   330
MyAppName[3634:224014] critical:    13  SpriteKit                           0x000000010559e69f  [SKAction(SKActions) playSoundFileNamed:waitForCompletion:]   40
MyAppName[3634:224014] critical:    14  ???                                 0x000000012ca13ee8 0x0   5043732200
MyAppName[3634:224014] critical: 
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================
  

Есть идеи?

Комментарии:

1. Вы действительно не можете с этим работать. Самым простым решением может быть интеграция платформы отчетов о сбоях (например, AppCenter) перед отправкой. Если тестировщики Apple столкнутся с сбоем, вы получите его управляемым способом .NET, что значительно упростит вам отладку

2. Похоже, вы отправляете в Apple сборку на основе отладки.

3. @SushiHangover Не могли бы вы уточнить? Я убедился, что был выбран релиз, когда создавал архив для отправки в Apple.

4. @kryptonking Проверьте, не имеет ли ваше приложение каких-либо ограничений в разделе debug, вызывающих проблемы с выпускной версией. Например, использовать ли тестирование в интрасети, запросы данных веб-сервиса и т.д.

5. @JuniorJiang-MSFT Где я могу найти эту информацию в Xamarin? Я проверил параметры сборки iOS для своего проекта, и, похоже, там все в порядке. Также проверил Entitlements.plist, чтобы убедиться, что ничего не было проверено (поскольку моему приложению здесь ничего не нужно), и я убедился, что ничего не было.