Наконец, после нескольких часов работы с настройками, кодом и т. Д., Я наконец исправил это.
Подход заключался в следующем:
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)
Надеюсь, это поможет.
Удачи!