Подтвердить что ты не робот

Сбой приложений только при тестировании

Я создал приложение для быстрой и протестировал его с помощью устройств iPhone 6, iPhone 6 plus и iPhone 5 и всех симуляторов, предлагаемых в Xcode. Приложение работает нормально и не сбой при загрузке локально. (iOS 8)

Наконец я представил сборку для Testflight. Приложение последовательно сбой в том же месте после загрузки приложения через сборку Testflight.

Есть ли известная проблема, при которой загруженные сборки работают иначе, чем локально созданные сборки? И как я могу отладить проблему с помощью сборки Testflight?

4b9b3361

Ответ 1

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

Ответ 2

Я думаю, что это быстрый компилятор. Чтобы сначала проверить, перейдите в Изменить схему, затем измените настройку Создать конфигурацию на Снять на вкладке Выполнить, а затем установите строить локально. Вы узнаете, где именно сбой.

Ответ 3

Это может быть проблема с Биткодом. Проверьте, поддерживают ли ваши сторонние библиотеки бит-код, а затем устанавливают только бит-код, чтобы ДА еще установить значение НЕТ.

На самом деле биткод является промежуточным представлением скомпилированной программы. Приложения, загружаемые в iTunes Connect, содержащие бит-код, будут скомпилированы и связаны в App Store.

Ответ 4

В моем случае, изменение Legacy Build System на New Build System (для Xcode 10) решает мою проблему, когда сборка Testflight ведет себя по-другому. Может быть полезным для кого-то.

Ответ 5

Если у кого-то еще есть одна и та же проблема, вот что мое исправление:

Наконец-то я получил проблему до цикла с инструкцией if, сродни этому -

while(condition)
{
    if (check)
    {
        code!
    }
    //There was no code here
}

Обратите внимание, что в конце цикла нет кода (где есть комментарий). Как только я добавил случайный бит кода (в этом случае, увеличивая переменную для вывода), проблема остановлена.

while(condition)
{
    if (check)
    {
        code!
    }
    i += 1;
    output statement
}

Я думаю, что это должна быть ошибка компилятора, иначе мое "исправление" не должно быть исправлением. Но здесь это на случай, если это поможет кому-то еще!

Ответ 6

Вместо i += 1; в пустых циклах while.

Я сделал это в моем пустом, а Loop: RunLoop.current.run(until: Date(timeIntervalSinceNow: 1))

И теперь приложение TestFlight не бомбит!

Более короткое время может также работать, например: RunLoop.current.run(until: Date(timeIntervalSinceNow: 0.25))

Ответ 7

На самом деле сборка релиза принимает файл разрешений, отличный от разрешения отладки сборки при отладке в локальной системе.

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

Я не видел никакой информации о переполнении стека с проблемой прав. Я потратил много времени.