Сбой настроек IOS13 для уже оплаченного приложения - PullRequest
0 голосов
/ 05 октября 2019

Наши приложения в AppStore работали годами без каких-либо проблем. Тем не менее, с момента выхода iOS 13, хотя приложения по-прежнему работают нормально, но переходя в

Настройки iPad -> MyApp

Сбои и приложение настроек закончится, нетпроблемы с предыдущими выпусками iOS вообще.

Я просмотрел журналы устройств из XCODE Organizer и вижу в журналах следующее:

Incident Identifier: DC00F244-958C-407F-BDC9-CFD7D6C3D8C8
CrashReporter Key:   e5b2979fc92fb936e83ef8fdab74fbd1c0707ce3
Hardware Model:      iPad6,4
Process:             Preferences [530]
Path:                /Applications/Preferences.app/Preferences
Identifier:          com.apple.Preferences
Version:             161.2 (1)
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.apple.Preferences [634]


Date/Time:           2019-10-05 06:18:38.6274 +0100
Launch Time:         2019-10-05 06:18:17.3730 +0100
OS Version:          iPhone OS 13.1.2 (17A860)
Release Type:        User
Baseband Version:    7.00.01
Report Version:      104

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x00000001a581fefc
Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [530]
Triggered by Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libswiftCore.dylib              0x00000001a581fefc specialized _assertionFailure+ 2154236 (_:_:file:line:flags:) + 440
1   libswiftCore.dylib              0x00000001a581fefc specialized _assertionFailure+ 2154236 (_:_:file:line:flags:) + 440
2   libswiftCore.dylib              0x00000001a563b64c _assertionFailure+ 169548 (_:_:file:line:flags:) + 32
3   SettingsUIKitPrivate            0x00000001bfce0c24 0x1bfcda000 + 27684
4   SettingsUIKitPrivate            0x00000001bfce0fd4 0x1bfcda000 + 28628
5   SwiftUI                         0x00000001cd28d86c Binding.init+ 6629484 (get:set:) + 144
6   SettingsUIKitPrivate            0x00000001bfcdf654 0x1bfcda000 + 22100
7   SettingsUIKitPrivate            0x00000001bfcdca54 0x1bfcda000 + 10836
8   SettingsUIKitPrivate            0x00000001bfcdc44c 0x1bfcda000 + 9292
9   SwiftUI                         0x00000001cccf88e4 DynamicPropertyBody.update+ 776420 (context:) + 1768
10  SwiftUI                         0x00000001cccf9070 protocol witness for static UntypedAttribute._update+ 778352 (_:graph:attribute:) in conformance DynamicPropertyBody<A> + 36
11  AttributeGraph                  0x00000001c248e458 partial apply + 28
12  AttributeGraph                  0x00000001c2476a60 AG::Graph::UpdateStack::update+ 14944 () + 984
13  AttributeGraph                  0x00000001c2476d24 AG::Graph::update_attribute+ 15652 (unsigned int, bool) + 372
14  AttributeGraph                  0x00000001c2479e9c AG::Graph::value_ref+ 28316 (AG::attribute_t, AGTypeID, bool*) + 116
15  AttributeGraph                  0x00000001c24815ac AG::Graph::EntryExit::update_entry+ 58796 () const + 64
16  AttributeGraph                  0x00000001c2476a60 AG::Graph::UpdateStack::update+ 14944 () + 984
17  AttributeGraph                  0x00000001c2476d24 AG::Graph::update_attribute+ 15652 (unsigned int, bool) + 372
18  AttributeGraph                  0x00000001c2479e9c AG::Graph::value_ref+ 28316 (AG::attribute_t, AGTypeID, bool*) + 116
19  AttributeGraph                  0x00000001c24879e4 AGGraphGetValue + 48
20  SwiftUI                         0x00000001cce25c20 ViewGraph.sizeThatFits+ 2010144 (_:) + 100
21  SwiftUI                         0x00000001cd2e0520 specialized ListItemHost<>.hostSizeThatFits+ 6968608 (width:) + 120
22  SwiftUI                         0x00000001ccefb250 @objc ListCoreCellHost.sizeThatFits+ 2884176 (_:) + 48
23  UIKitCore                       0x000000019c666b98 -[UITableViewCell systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:] + 592
24  UIKitCore                       0x000000019c6dce38 -[UITableView _heightForCell:atIndexPath:] + 436
25  UIKitCore                       0x000000019c6c544c __53-[UITableView _configureCellForDisplay:forIndexPath:]_block_invoke + 2568
26  UIKitCore                       0x000000019c971d08 +[UIView+ 15129864 (Animation) performWithoutAnimation:] + 96
27  UIKitCore                       0x000000019c6c495c -[UITableView _configureCellForDisplay:forIndexPath:] + 248
28  UIKitCore                       0x000000019c6d5a04 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 796
29  UIKitCore                       0x000000019c6a338c -[UITableView _updateVisibleCellsNow:] + 2608
30  UIKitCore                       0x000000019c6c04b0 -[UITableView layoutSubviews] + 160
31  SwiftUI                         0x00000001ccef4438 UpdateCoalescingTableView.layoutSubviews+ 2855992 () + 56
32  SwiftUI                         0x00000001ccef45e4 @objc UpdateCoalescingTableView.layoutSubviews+ 2856420 () + 28
33  UIKitCore                       0x000000019c97f270 -[UIView+ 15184496 (CALayerDelegate) layoutSublayersOfLayer:] + 2140
34  QuartzCore                      0x000000019ee6b5f8 -[CALayer layoutSublayers] + 284
35  QuartzCore                      0x000000019ee6fe28 CA::Layer::layout_if_needed+ 1396264 (CA::Transaction*) + 480
36  QuartzCore                      0x000000019ee7b894 CA::Layer::layout_and_display_if_needed+ 1443988 (CA::Transaction*) + 136
37  QuartzCore                      0x000000019edc49f0 CA::Context::commit_transaction+ 694768 (CA::Transaction*, double) + 304
38  QuartzCore                      0x000000019edee890 CA::Transaction::commit+ 866448 () + 676
39  QuartzCore                      0x000000019edef284 CA::Transaction::observer_callback+ 868996 (__CFRunLoopObserver*, unsigned long, void*) + 92
40  CoreFoundation                  0x0000000198463c48 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
41  CoreFoundation                  0x000000019845eb34 __CFRunLoopDoObservers + 416
42  CoreFoundation                  0x000000019845f100 __CFRunLoopRun + 1308
43  CoreFoundation                  0x000000019845e8bc CFRunLoopRunSpecific + 464
44  GraphicsServices                0x00000001a22ca328 GSEventRunModal + 104
45  UIKitCore                       0x000000019c4f46d4 UIApplicationMain + 1936
46  Preferences                     0x0000000104869974 0x104860000 + 39284
47  libdyld.dylib                   0x00000001982e9460 start + 4

Thread 1:
0   libsystem_pthread.dylib         0x0000000198206ad8 start_wqthread + 0

Thread 2:
0   libsystem_pthread.dylib         0x0000000198206ad8 start_wqthread + 0

Thread 3 name:  com.apple.uikit.eventfetch-thread
Thread 3:
0   libsystem_kernel.dylib          0x00000001982bd5f4 mach_msg_trap + 8
1   libsystem_kernel.dylib          0x00000001982bca60 mach_msg + 72
2   CoreFoundation                  0x0000000198464068 __CFRunLoopServiceMachPort + 216
3   CoreFoundation                  0x000000019845f188 __CFRunLoopRun + 1444
4   CoreFoundation                  0x000000019845e8bc CFRunLoopRunSpecific + 464
5   Foundation                      0x000000019879e994 -[NSRunLoop+ 31124 (NSRunLoop) runMode:beforeDate:] + 228
6   Foundation                      0x000000019879e874 -[NSRunLoop+ 30836 (NSRunLoop) runUntilDate:] + 88
7   UIKitCore                       0x000000019c58c49c -[UIEventFetcher threadMain] + 152
8   Foundation                      0x00000001988cf0b0 __NSThread__start__ + 848
9   libsystem_pthread.dylib         0x00000001982031ec _pthread_start + 124
10  libsystem_pthread.dylib         0x0000000198206aec thread_start + 8

Thread 4:
0   libsystem_pthread.dylib         0x0000000198206ad8 start_wqthread + 0

Thread 5:
0   libsystem_pthread.dylib         0x0000000198206ad8 start_wqthread + 0

Thread 6 name:  com.apple.NSURLConnectionLoader
Thread 6:
0   libsystem_kernel.dylib          0x00000001982bd5f4 mach_msg_trap + 8
1   libsystem_kernel.dylib          0x00000001982bca60 mach_msg + 72
2   CoreFoundation                  0x0000000198464068 __CFRunLoopServiceMachPort + 216
3   CoreFoundation                  0x000000019845f188 __CFRunLoopRun + 1444
4   CoreFoundation                  0x000000019845e8bc CFRunLoopRunSpecific + 464
5   CFNetwork                       0x000000019b6d9e68 0x19b6d8000 + 7784
6   Foundation                      0x00000001988cf0b0 __NSThread__start__ + 848
7   libsystem_pthread.dylib         0x00000001982031ec _pthread_start + 124
8   libsystem_pthread.dylib         0x0000000198206aec thread_start + 8

Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0xe000000000000000   x1: 0x0000000280915800   x2: 0x0000000000000007   x3: 0x00000001981ce0dc
    x4: 0x0000000000000000   x5: 0x000000016b59a5f0   x6: 0x0000000000000072   x7: 0x0000000000000c70
    x8: 0x00000000dfc24834   x9: 0x000000000000007f  x10: 0x0000000000000031  x11: 0x00000000000007fb
   x12: 0x00000000000007fd  x13: 0x0000000000000000  x14: 0x00000000dfe25000  x15: 0x000000000000004a
   x16: 0x0000000080000000  x17: 0x000000005fe00000  x18: 0x0000000000000000  x19: 0x00000001bfcfd020
   x20: 0x0000000000000002  x21: 0x0000000000000000  x22: 0x00000000000000a8  x23: 0x0000000000000000
   x24: 0xe000000000000000  x25: 0x000000000000000b  x26: 0x0000000000000000  x27: 0x0000000000000095
   x28: 0x00000001bfce0fbc   fp: 0x000000016b59a790   lr: 0x00000001a581fefc
    sp: 0x000000016b59a710   pc: 0x00000001a581fefc cpsr: 0x60000000
   esr: 0xf2000001  Address size fault

Я почесываю голову на этом, приложение работает нормально,только настройки, имеющие эту проблему.

У меня есть план о том, как диагностировать и исправить, и, надеюсь, скоро должен быть решен, но интересно, видел ли кто-нибудь это еще?

Спасибо

1 Ответ

0 голосов
/ 05 октября 2019

Наконец, после нескольких часов работы с настройками, кодом и т. Д., Я наконец исправил это.

Подход заключался в следующем:

1) Отредактируйте файл info.plist настроек моего приложения. (в виде текста) и выньте все разделы в текстовый редактор, файл почти станет пустым.

2) Перекомпилируйте и запустите на iPad -> STOP APP -> Перейти в настройки -> Нажмите на приложениеТеперь он работает нормально без моих настроек, так что я подумал, что что-то должно было быть причиной всего этого

3) Начал вставлять по частям обратно в файл info.plist до тех пор, пока я, наконец, не получил раздел обиды, который был ниже:

    <dict>
        <key>AutocapitalizationType</key>
        <string>None</string>
        <key>AutocorrectionType</key>
        <string>No</string>
        <key>DefaultValue</key>
        <string>8101</string>
        <key>IsSecure</key>
        <string>No</string>
        <key>Key</key>
        <string>Admin_iTaxi Server Port</string>
        <key>KeyboardType</key>
        <string>NumberPad</string>
        <key>Title</key>
        <string>Server Port                </string>
        <key>Type</key>
        <string>PSTextFieldSpecifier</string>
    </dict>

4) Выглядело очень странно и странно, ... я имею в виду, что может быть не так с вышеуказанным блоком?! ... и почему это работало на всех iOS до последней версии iOS13!? ...

5) Проверил все орфографии, переупорядочил список, чтобы сделать его похожим на другой, который работает, изменил тип клавиатуры, другие элементы, ... запущен-остановлен, проверил настройки, то же самое, ... все еще вылетает! .. .

6) Наконец, я изменил имя переменной с «Admin_iTaxi Server Port» на «Admin_iTaxi Server XXXPort», перекомпилировал, и это сработало ... хммм ... почему!? ...

7) Вернулся в код запуска и заметил, что я устанавливаю переменные (если они не существуют) следующим образом:

if (!IsConfigKeyExist(@"Admin_iTaxi Server Port"))
{
        TempServerPortAdmin = 8102;
        [[NSUserDefaults standardUserDefaults] setInteger:TempServerPortAdmin forKey:@"Admin_iTaxi Server Port"];
}

8) Затем я подумал, чтоВ файле info.plist есть КЛЮЧИ и ТИПЫ, все они установлены как, поэтому не могу вспомнить какие-либо настройки и т. д., поэтому.

9) Изменил код выше:

if (! IsConfigKeyExist (@ "Admin_iTaxi Server Port")) {TempServerPortAdmin = 8102;[[NSUserDefaults standardUserDefaults] setValue: [NSString stringWithFormat: @ "% li", TempServerPortAdmin] forKey: @ "Admin_iTaxi Server Port"];}

10) Восстановлено исходное имя переменной в info.plist, start-stop-check, ... Eureeka, .. теперь оно работает ...

Вывод: каким-то образом внизApple в своей мудрости решила завершить работу приложения настроек, когда они читают Integer в строковую переменную ... почему!? ... Понятия не имею, но исправление (как упомянуто выше), НЕ хранить ваши настройки как"Integer" и заражать можно хранить только как "String", особенно если вы собираетесь использовать эти настройки в файле info.plist.

Это решает проблему сбоя настроек приложения с помощью EXC_BREAKPOINT (SIGTRAP)

Надеюсь, это поможет.

Удачи!

...