I have an app that record video, and use extern libs as FMMPEG and x264. All extern libs are compiled with iOS 9.2 SDK and for all valid architectures.
It was working fine until I decided use iOS 10 SDK as Base SDK and replace deprecated methods in iOS 10 with newer methods using iOS (after update Xcode to 8.X version). At this moment I have this build settings:
As I said, the app use extern libs, and this libs are compiled with iOS 9.2 SDK version (I decided it for avoid warnings because the minimun supported version for my app is 9.2). Well, when the app run in iOS 10 it run without errors, but when the app run in iOS 9 and I start recording video, the app crash always in a float operation in FFMPEG lib (if I edit FFMPEG source code and cast the float value to integer before operation the app crash in next float operation, so it isn't a solution).
The problem is:
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.
The solution could be: Use iOS 9.X SDK for compile in Xcode, but I can't use iOS 9.X SDK version for create app, I use frameworks that are only in iOS 10 as UserNotifications.
Of course, I always check the iOS version in runtime with:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0) {...}
Abstract:
App compiled with iOS 10.X SDK + iOS 9 = Crash
App compiled with iOS 9.X SDK + iOS 9 = No Crash (but can't be a solution)
Crashing code:
code=EXC_ARM_BREAKPOINT,subcode=0xe7ffdefe