2016-12-05 2 views
0

У меня есть приложение для iPhone, которое рушится на устройствах iOS9 только после выхода через TestFlight или App Store. Построенные спецификации:Приложение аварийно завершает работу при запуске. Сбой в iOS9 при выпуске только через TestFlight или Store. Распространяется с Xcode 8

целевые развертывания SDK 8.1 Base: Последние IOS (IOS 10.1)

Перед тем, как отправлять журналы аварии, которые я хотел бы отметить, что это приложение было на магазин приложений в течение последних 2-х лет и у него никогда не было проблем. В этом году мы сделали 3 обновления в магазине приложений, из которых 2 были выпущены после выхода iOS10, и никаких проблем с устройствами iOS9 не было.

Странно, что мы используем Crashlytics, и оно сообщило о более чем 600 авариях, каждый из которых представляет собой исключительную катастрофу, которая указывает либо на внутреннюю инфраструктуру Apple, либо на частный API. У меня есть устройство iOS 9.2.1, которое также терпит крах, из которого я вытащил журналы. Они начинают следить за тенденцией, но мне нужна помощь в расшифровке причины сбоев.

Краш 1:

Thread 0 Crashed: 
0 libobjc.A.dylib     0x22fb3af6 objc_msgSend + 22 
1 libobjc.A.dylib     0x22fc0f8a  objc_object::sidetable_release(bool) + 150 
2 libobjc.A.dylib     0x22fc13cc (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 388 
3 FrontBoardServices    0x24aebc7e -[FBSSerialQueue _performNext] + 242 
4 FrontBoardServices    0x24aebf60 -[FBSSerialQueue _performNextFromRunLoopSource] + 44 
5 CoreFoundation     0x2379d256 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14 
6 CoreFoundation     0x2379ce46 __CFRunLoopDoSources0 + 454 
7 CoreFoundation     0x2379b1ae __CFRunLoopRun + 806 
8 CoreFoundation     0x236edbb8 CFRunLoopRunSpecific + 516 
9 CoreFoundation     0x236ed9ac CFRunLoopRunInMode + 108 
10 UIKit       0x279dfa16 -[UIApplication _run] + 526 
11 UIKit       0x279d9fb4 UIApplicationMain + 144 
12 Where Next      0x000a7816 main (main.m:16) 
13 libdyld.dylib     0x233a0872 start + 2 

Крушения 2:

Thread 0 Crashed: 
0 libobjc.A.dylib     0x22fb3af6 objc_msgSend + 22 
1 CoreUI       0x277e3022 -[CUICatalog _resolvedRenditionKeyFromThemeRef:withBaseKey:scaleFactor:devic eIdiom:deviceSubtype:sizeClassHorizontal:sizeClassVertical:memoryClass:graphicsClass:graphicsFallBackOrder:] + 646 
2 CoreUI       0x277e2d98 -[CUICatalog _resolvedRenditionKeyForName:scaleFactor:deviceIdiom:deviceSubt ype:sizeClassHorizontal:sizeClassVertical:memoryClass:graphicsClass:graphicsFallBackOrder:withBaseKeySelector:] + 284 
3 CoreUI       0x277e252a -[CUICatalog  namedLookupWithName:scaleFactor:deviceIdiom:deviceSubtype:sizeClassHorizontal:sizeClassVertical:] + 94 
4 UIKit       0x28183a2c __98-[_UIAssetManager  imageNamed:scale:idiom:subtype:cachingOptions:sizeClassPair:attachCatalogImage:]_block_invoke + 496 
5 UIKit       0x2818377e -[_UIAssetManager  imageNamed:scale:idiom:subtype:cachingOptions:sizeClassPair:attachCatalogImage:] + 230 
6 UIKit       0x2798bcd4 -[_UIAssetManager imageNamed:scale:idiom:subtype:] + 108 
7 UIKit       0x2798bc62 -[_UIAssetManager imageNamed:idiom:subtype:] + 46 
8 UIKit       0x2798bc2e -[_UIAssetManager imageNamed:idiom:] + 46 
9 UIKit       0x27e1e438 -[UIImageNibPlaceholder initWithCoder:] + 456 
10 UIKit       0x27f32180 UINibDecoderDecodeObjectForValue + 780 
11 UIKit       0x27f31e68 -[UINibDecoder decodeObjectForKey:] + 296 
12 UIKit       0x27e0a602 -[UIButtonContent initWithCoder:] + 382 
13 UIKit       0x27f32180 UINibDecoderDecodeObjectForValue + 780 
14 UIKit       0x27f3250c UINibDecoderDecodeObjectForValue + 1688 
15 UIKit       0x27f31e68 -[UINibDecoder decodeObjectForKey:] + 296 
16 UIKit       0x27e0d03c -[UIButton initWithCoder:] + 748 
17 UIKit       0x27f32180 UINibDecoderDecodeObjectForValue + 780 
18 UIKit       0x27f31e68 -[UINibDecoder decodeObjectForKey:] + 296 
19 UIKit       0x27e1d202 -[UIRuntimeConnection initWithCoder:] + 114 
20 UIKit       0x27e1d88c -[UIRuntimeEventConnection initWithCoder:] + 52 
21 UIKit       0x27f32180 UINibDecoderDecodeObjectForValue + 780 
22 UIKit       0x27f32112 UINibDecoderDecodeObjectForValue + 670 
23 UIKit       0x27f31e68 -[UINibDecoder decodeObjectForKey:] + 296 
24 UIKit       0x27e1c796 -[UINib instantiateWithOwner:options:] + 1110 
25 UIKit       0x27cd6676 -[UIViewController _loadViewFromNibNamed:bundle:] + 322 
26 UIKit       0x27aab9d6 -[UIViewController loadView] + 142 
27 UIKit       0x27971a0a -[UIViewController loadViewIfRequired] + 150 
28 UIKit       0x27971958 -[UIViewController view] + 24 
29 UIKit       0x281edf4a __67-[UIStoryboardEmbedSegueTemplate  newDefaultPerformHandlerForSegue:]_block_invoke + 498 
30 UIKit       0x280642d4 -[UIStoryboardSegueTemplate _performWithDestinationViewController:sender:]  + 432 
31 UIKit       0x28064102 -[UIStoryboardSegueTemplate _perform:] + 66 
32 UIKit       0x28064374 -[UIStoryboardSegueTemplate perform:] + 132 
33 UIKit       0x27971bca -[UIViewController loadViewIfRequired] + 598 
34 UIKit       0x27971958 -[UIViewController view] + 24 
35 UIKit       0x279786d0 -[UIWindow addRootViewControllerViewIfPossible] + 68 
36 UIKit       0x27975bf2 -[UIWindow _setHidden:forced:] + 278 
37 UIKit       0x279ea914 -[UIWindow makeKeyAndVisible] + 48 
38 UIKit       0x27c0f11c -[UIApplication  _callInitializationDelegatesForMainScene:transitionContext:] + 3320 
39 UIKit       0x27c12f0e -[UIApplication _runWithMainScene:transitionContext:completion:] + 1570 
40 UIKit       0x27c26c14 __84-[UIApplication  _handleApplicationActivationWithScene:transitionContext:completion:]_block_invoke3228 + 36 
41 UIKit       0x27c103f6 -[UIApplication workspaceDidEndTransaction:] + 134 
42 FrontBoardServices    0x24aebc74 -[FBSSerialQueue _performNext] + 232 
43 FrontBoardServices    0x24aebf60 -[FBSSerialQueue _performNextFromRunLoopSource] + 44 
44 CoreFoundation     0x2379d256 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14 
45 CoreFoundation     0x2379ce46 __CFRunLoopDoSources0 + 454 
46 CoreFoundation     0x2379b1ae __CFRunLoopRun + 806 
47 CoreFoundation     0x236edbb8 CFRunLoopRunSpecific + 516 
48 CoreFoundation     0x236ed9ac CFRunLoopRunInMode + 108 
49 UIKit       0x279dfa16 -[UIApplication _run] + 526 
50 UIKit       0x279d9fb4 UIApplicationMain + 144 
51 Where Next      0x000e8816 main (main.m:16) 
52 libdyld.dylib     0x233a0872 start + 2 

Краш 3:

Thread 0 Crashed: 
0 libsystem_malloc.dylib   0x2349c43a tiny_free_list_remove_ptr + 126 
1 libsystem_malloc.dylib   0x2349b4d0 szone_free_definite_size + 932 
2 libcache.dylib     0x2330d6f4 cache_set_name + 20 
3 CoreFoundation     0x2372eb94 -[NSCache setName:] + 136 
4 CoreUI       0x277e2f0e -[CUICatalog _resolvedRenditionKeyFromThemeRef:withBaseKey:scaleFactor:devic eIdiom:deviceSubtype:sizeClassHorizontal:sizeClassVertical:memoryClass:graphicsClass:graphicsFallBackOrder:] + 370 
5 CoreUI       0x277e2d98 -[CUICatalog _resolvedRenditionKeyForName:scaleFactor:deviceIdiom:deviceSubt ype:sizeClassHorizontal:sizeClassVertical:memoryClass:graphicsClass:graphicsFallBackOrder:withBaseKeySelector:] + 284 
6 CoreUI       0x277e252a -[CUICatalog  namedLookupWithName:scaleFactor:deviceIdiom:deviceSubtype:sizeClassHorizontal:sizeClassVertical:] + 94 
7 UIKit       0x28183a2c __98-[_UIAssetManager  imageNamed:scale:idiom:subtype:cachingOptions:sizeClassPair:attachCatalogImage:]_block_invoke + 496 
8 UIKit       0x2818377e -[_UIAssetManager  imageNamed:scale:idiom:subtype:cachingOptions:sizeClassPair:attachCatalogImage:] + 230 
9 UIKit       0x28183f50 -[_UIAssetManager imageNamed:withTrait:] + 408 
10 UIKit       0x27c4e94c +[UIImage imageNamed:inBundle:compatibleWithTraitCollection:] + 172 
11 UIKit       0x27aae536 +[UIImage imageNamed:] + 110 
12 Where Next      0x000e555e -[PreferenceObject resetLocations] (PreferenceObject.m:184) 
13 Where Next      0x000e4b6e __33+[PreferenceObject sharedManager]_block_invoke (PreferenceObject.m:92) 
14 libdispatch.dylib    0x23377dc2 _dispatch_client_callout + 22 
15 libdispatch.dylib    0x233789b2 dispatch_once_f + 62 
16 Where Next      0x000e4980 +[PreferenceObject sharedManager] (once.h:75) 
17 Where Next      0x00102440 -[AppDelegate application:didFinishLaunchingWithOptions:] (AppDelegate.m:57) 
18 Where Next      0x002ced6a VMDidFinishLaunchingWithOptions (UIApplication+VMRuntime.m:138) 
19 UIKit       0x279e664e -[UIApplication  _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 394 
20 UIKit       0x27c0f032 -[UIApplication  _callInitializationDelegatesForMainScene:transitionContext:] + 3086 
21 UIKit       0x27c12f0e -[UIApplication _runWithMainScene:transitionContext:completion:] + 1570 
22 UIKit       0x27c26c14 __84-[UIApplication  _handleApplicationActivationWithScene:transitionContext:completion:]_block_invoke3228 + 36 
23 UIKit       0x27c103f6 -[UIApplication workspaceDidEndTransaction:] + 134 
24 FrontBoardServices    0x24aebc74 -[FBSSerialQueue _performNext] + 232 
25 FrontBoardServices    0x24aebf60 -[FBSSerialQueue _performNextFromRunLoopSource] + 44 
26 CoreFoundation     0x2379d256 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14 
27 CoreFoundation     0x2379ce46 __CFRunLoopDoSources0 + 454 
28 CoreFoundation     0x2379b1ae __CFRunLoopRun + 806 
29 CoreFoundation     0x236edbb8 CFRunLoopRunSpecific + 516 
30 CoreFoundation     0x236ed9ac CFRunLoopRunInMode + 108 
31 UIKit       0x279dfa16 -[UIApplication _run] + 526 
32 UIKit       0x279d9fb4 UIApplicationMain + 144 
33 Where Next      0x00103816 main (main.m:16) 
34 libdyld.dylib     0x233a0872 start + 2 

Последние две аварии выглядят как они могут не суметь на поиске актива изображения. .. Однако, поскольку я не могу заставить это реплицироваться в режиме отладки или любой форме «запускать» из Xcode, я застрял.

Оцените сообщество помощи!

ответ

0

Сбой при сбоях (сбои, возникающие при сборках, отправленных через App Store или TestFlight), могут быть жесткими. У меня был тот, который разбился на NSArraycontainsObject: и не мог воспроизвести его сам, или так я думал.

Я сделал следующее, чтобы воспроизвести ошибку.

  1. Пошел к продукту -> Схема -> Изменить схему ...
  2. щелчку на вкладке «Информация» для моей стандартной схемы отладки
  3. Изменена конфигурация сборки от «Debug», чтобы «Release»
  4. перестроен и побежал проект

в некоторых случаях, это не достаточно, чтобы воспроизвести сбой выпуска. Я сделал следующие шаги, чтобы воспроизвести его.

  1. Переполнение в "Отладка Executable" в этой ранней закладке Информация о схеме
  2. Убирали мой проект и построить папку (Command-Shift-K и Command-Alt-Shift-K соответственно)
  3. перестроен и прошел проект

Вот как это было бы в моей конфигурации, если бы мне нужно было сделать то же самое.

enter image description here

После того, как вы в состоянии воспроизвести аварии (надеюсь, вы можете воспроизводить с бревнами), попробовать свои обычные методы отладки, чтобы увидеть, где это происходит сбой. Воспроизводите звук, когда что-то выполняется, прокомментируйте строки и т. Д.

Я, к сожалению, не знаю вашего точного сбоя, хотя этот метод помог мне воспроизвести проблему, которую 90% наших пользователей имели, а я не был, просто потому что раньше я строил отладку.

+0

Привет, Эдвин, спасибо за замечательный ответ! Я пробовал все эти методы, о которых вы упоминали. Я также попытался увеличить уровень оптимизации отладки, но безрезультатно. Хуже всего то, что он падает до того, как у регистратора появится возможность отправить сбой при помощи TestFlight. Я попробую еще раз изменить конфигурацию для выпуска. T –

+0

Извините, я не мог больше помочь :(. Это тяжело, хотя я уверен, что вы пройдете через него! –

2

Такая же проблема возникает с моим приложением. Он выходит из строя в iOS9 при выпуске только через TestFlight или AppStore.
См. Принятый ответ https://forums.developer.apple.com/thread/60919. Это работает для меня, и я исправил ошибку.

Как устранить «ERROR ITMS-90682: Недействительный пакет». Каталог активов в разделе «Полезная нагрузка/XXXXX/Assets.car» не может содержать 16-разрядные или P3-активы, если приложение поддерживает iOS 8 или более ранние версии ».

С Xcode 8 GM эта ошибка возникает, если вы включаете 16-разрядные или P3-активы в приложение, предназначенные для iOS-релизов ранее, чем iOS 9.3. Если для вашего приложения требуется широкая цветовая функциональность, вы должны изменить свой целевой уровень развертывания на iOS 9.3 или новее. Если ваше приложение не требует широкой цветовой функциональности, и вы хотите развернуть его на более старые версии iOS, вы должны заменить все 16-разрядные или P3-активы 8-разрядными ресурсами sRGB. Вы можете найти 16-битные или P3-активы, запустив «assetutil» в каталоге активов, указанном в сообщении об ошибке из iTunes Connect. Следующие шаги описывают процесс:

Создайте интуитивно понятный .ipa-файл. В Xcode Organizer (Xcode-> Window-> Organizer) выберите архив для проверки, нажмите «Экспортировать ...» и выберите «Экспорт для Enterprise или Ad-Hoc Deployment». Это создаст локальную копию. ipa-файл для вашего приложения. Найдите этот .ipa-файл и измените его расширение на .zip. Разверните .zip-файл. Это создаст папку Payload, содержащую ваш пакет .app. Откройте терминал и смените рабочий каталог на верхний уровень вашего .app bundle cd path/to/Payload/your.app Используйте инструмент поиска, чтобы найти файлы Assets.car в вашем пакете .app, как показано ниже: find. -name 'Assets.car' Используйте инструмент assetutil для поиска любых 16-разрядных или P3-активов в каждом Assets.car, которое ваше приложение имеет, как показано ниже: sudo xcrun --sdk iphoneos assetutil -info /path/to/a/Assets.car>/tmp/Assets .json Осмотрите полученный/tmp/Assets.json и найдите любое содержимое, содержащее «DisplayGamut»: «P3» и связанное с ним «Имя». Это будет имя вашего набора изображений, содержащего один или более 16-разрядных или P3-активов. Замените эти активы 8-разрядными/sRGB-активами, а затем восстановите свое приложение. Обновление: если ваш целевой объект развертывания имеет значение 8.3 или 8.4, и у вас есть каталог активов, вы получите это же сообщение об ошибке, даже если на самом деле у вас нет 16-разрядных или P3-активов. В этом случае вам нужно будет либо снизить целевой уровень развертывания до 8,2, либо переместить его до 9.x.

+0

Woah! Легендарный ответ. Это было абсолютное бэйн в течение нескольких недель. ваше решение попробуй и дайте знать. Спасибо! –

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