最近刚开始收到一封包含以下建议的应用商店提交电子邮件。
请确保您的构建设置已配置为创建 PIE 可执行文件。
但是 XCode 中的设置似乎正确,在我发现的链接部分
“不要创建与位置无关的可执行文件”,设置为 NO。
(双重否定YUK)。
您收到此 Apple 警告可能不是因为您的应用程序本身,而是因为未编译为 PIE 的 3rd 方库。例如,如果您使用 Marmalade SDK Engine,您将收到此警告(他们将在 9 月修复它)。
但是您可以尝试在构建设置中添加更多编译器标志:
在其他 C 标志中,您可以放置标志:-fPIC
在其他警告标志中,您可以放置:-Wl,--emit-relocs和-Wl ,--warn-shared-textrel
要查看您的应用是否为 PIE:
otool -hf /path/to/your/App.app/app
参考:https ://developer.apple.com/library/ios/qa/qa1788/_index.html
我得到了苹果的回应
非 PIE 二进制文件 - 可执行文件“ProductManualApp.app”不是与位置无关的可执行文件。请确保您的构建设置已配置为创建 PIE 可执行文件。
根据我在谷歌的研究,很多人说它与“不要创建与位置无关的可执行文件”有关。我认为应该保持默认,即“否”