2016-12-15 3 views
0

У меня есть приложение, которое записывает видео и использует extern libs как FMMPEG и x264. Все extern libs скомпилированы с SDK iOS 9.2 и для всех допустимых архитектур.Ошибка приложения в iOS 9, но не в iOS 10

Он работал нормально, пока не решил использовать SDK IOS 10 в качестве базового SDK и заменить устаревшие методы в iOS 10 новыми методами с использованием iOS (после обновления версии Xcode до версии 8.X). На данный момент у меня есть этот билд настройка:

Build Settings

Как я уже сказал, приложение использовать Экстерн LIBS, и это ЛИЭС скомпилирован с прошивкой 9.2 SDK версии (я решил это для избежания предупреждений, потому что Minimun поддерживаемой версии для моего приложения - 9.2). Ну, когда приложение запускается в iOS 10, оно запускается без ошибок, но когда приложение запускается в iOS 9, и я начинаю записывать видео, приложение всегда срабатывает в режиме float в FFMPEG lib (если я редактирую исходный код FFMPEG и отбрасываю float значение до целого числа перед операцией сбой приложения в следующей операции с плавающей точкой, поэтому это не решение).

Проблема заключается в том:

Only crash when I use iOS 10.X SDK version for compile app in Xcode, when I configure for use iOS 9.X SDK version in Xcode for compile and install app in iOS 9, it don't crash.

Решение может быть: Использование IOS 9.X SDK для компиляции в Xcode, но я не могу использовать IOS 9.X SDK версии для создания приложения , Я использую фреймворки, которые находятся только в iOS 10 как UserNotifications.

Конечно, я всегда проверить версию IOS в режиме исполнения:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0) {...} 

Аннотация:

App скомпилирован с IOS 10.X SDK + прошивкой 9 = Крушение

App скомпилирован с iOS 9.X SDK + iOS 9 = Нет сбоя (но не может быть решением)


разбивая код:

code=EXC_ARM_BREAKPOINT,subcode=0xe7ffdefe

+0

Вы проверили этот вопрос? http://stackoverflow.com/questions/29434253/xcode-exc-breakpoint-exc-arm-breakpoint-subcode-0xe7ffdefe В этом конкретном случае это было целое число, которое использовалось в 64-битной среде, но его использование в код был 32-битным. Проблема в том, что проблема с 'UInt32' исправлена. Может быть, используя 'Float32'? –

+0

Проблема не в 32 и 64 бит, проблема в том, что один iPhone SE с iOS 10 запускает приложение без проблем. Другой iPhone SE с крахами iOS 9 в поплавковых операциях, iPhone SE использует 64-битный proc, поэтому это не может быть ошибка. Также сбой приложения в стороннем lib, изменение всех типов является сумасшедшим. – Anthony

+0

Отредактировано с помощью решения. Спасибо всем парням;) – Anthony

ответ

0

(Опубликовано от имени О.П.).

Проблема была решена. Когда я проверял журналы, я увидел следующую ошибку:

dyld: Symbol not found: ___gesf2 

Проблема заключалась в том, что приложение искал символ в AddressBook Framework, когда приложение побежал в 32 бит (ARMv7 & armv7s). Это решение было удалено из проекта и перекомпилировано.

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