【发布时间】:2016-05-25 00:00:46
【问题描述】:
最近刚开始收到一封包含以下建议的应用商店提交邮件。
请确保您的构建设置已配置为创建 PIE 可执行文件。
但是 XCode 中的设置看起来是正确的,在我发现的链接部分
“不创建与位置无关的可执行文件”,设置为 NO。
(双重否定 YUK)。
【问题讨论】:
最近刚开始收到一封包含以下建议的应用商店提交邮件。
请确保您的构建设置已配置为创建 PIE 可执行文件。
但是 XCode 中的设置看起来是正确的,在我发现的链接部分
“不创建与位置无关的可执行文件”,设置为 NO。
(双重否定 YUK)。
【问题讨论】:
您收到此 Apple 警告可能不是因为您的应用程序本身,而是因为未编译为 PIE 的第 3 方库。例如,如果您使用 Marmalade SDK Engine,您将收到此警告(他们将在 9 月修复它)。
但您可以尝试在构建设置中添加更多编译器标志:
在Other C flags中,您可以放置以下标志:-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
【讨论】:
我收到了 Apple 的回复
非 PIE 二进制文件 - 可执行文件“ProductManualApp.app”不是与位置无关的可执行文件。请确保您的构建设置已配置为创建 PIE 可执行文件。
根据我在 Google 的研究,很多人说它与“不要创建与位置无关的可执行文件”有关。我认为应该保持默认,即“否”
【讨论】: