Apple have recently introduced an additional verification for iOS Appstore submissions. Developers (including myself) have received warnings that their applications are not Position Independant Executables:
Non-PIE Binary – The executable ‘myapp.app’ is not a Position Independent Executable. Please ensure that your build settings are configured to create PIE executables.
For XCode based objective-c developers the fix is easy just enable PIE in XCode (your deployment target must be >= 4.3) – disregard the double negatives, the option should be set to NO for “Don’t Create Position Indipendent Executables”. There is a question on StackOverflow with more details on PIE and ASLR.
For “natively cross-platform” junkies like myself who are using frameworks and tools like Xamarin, Marmelade, Titanium and the likes things are a little more tricky – currently everyone seems to be having issues getting support in place. But thankfully, for know at least, the warning from Apple is not blocking AppStore review it is just sent out as a warning, probably to get apps compliant before Apple make it an absolute requirement…
What an awesome way to explain this-now I know everything!