I uploaded a binary on into iTunes Connect, it was validated and accepted to publish to the App Store. I received an email from Apple, saying that my application is an inval
We're getting the same message on all of our app updates this week. You will need to set "Don't Create Position Independent Executables" to "NO" and "Generate Position-Dependent Code" to "NO", which is the default.
The key is that you will need to set "iOS Deployment Target" to 4.3 or later, or the PIE settings will be ignored.
You can test the app binary with this command and it will show "PIE" at the end of the line for a PIE exe. otool -vh MyAppExe
There is now a document from Apple explaining the issue and how to solve it: QA1788: Building a Position Independent Executable,
Steps for building your application as PIE
In Xcode, select your target in the "Targets" section, then click the "Build Settings" tab to view its settings.
For iOS apps, set
iOS Deployment Target
to iOS 4.3 or later. For Mac apps, setOS X Deployment Target
to OS X 10.7 or later.Verify that
Generate Position-Dependent Code
is set at to NO.Verify that
Don't Create Position Independent Executables
is set to NO.
as mentioned here by Vincent, to have a PIE-Binary:
otool -hv /path/to/MyApp.app/MyApp
This said, Apple does not force you "YET" to have a PIE-Binary app. So the question is "will they force to do so ? and when ?"
_oho
more info: http://blog.hoachuck.biz/blog/2013/06/28/non-pie-binary-app-on-ios-could-lead-to-security-issue/