I am updating the application with the target iOS 7 for deployment, so it can work with iOS 9. I also add some cool features of iOS 8 and 9. I read a lot of articles about backward version compatibility and now that Swift 2.0 makes things easier. So far I have made sure that:
- Having the base SDK installed in iOS 9 and the deployment target installed in version 7
- Version checking at runtime
if #available(iOS 9.0, *)using new APIs - Linking only iOS9 frameworks, as shown here:

As you can see, the two new frameworks I use are ContactsUIand CoreSpotlight. When I run the application in the simulator, it works fine, but when I try to create and run it on my device (which is running iOS 9, obviously), I get the following code signing error:
/path/to/a/file.framework: bundle format unrecognized, invalid, or unsuitable
Command /usr/bin/codesign failed with exit code 1
This error appears twice, both for the ContactsUI infrastructure and for CoreSpotlight.
At first, I thought it was a compatibility issue, since it appeared the first time I tried to run my application on an iOS 7 device (to verify that it works correctly), but then it happened to my regular and up-to-date device.
What is the problem? Is there a code signing error with framework compatibility? And finally, when this is allowed, will the application work on all versions that I want to support?
, .