位置独立可执行文件的正确Xcode设置是什么

时间:2013-05-13 08:57:51

标签: xcode linker pie-chart

刚刚开始使用以下建议获得appstore后发送电子邮件。

请确保您的构建设置已配置为创建PIE可执行文件。

然而,XCode中的设置显示正确,在我找到的链接部分

“不创建位置无关的可执行文件”,设置为NO。

(双重否定YUK)。

2 个答案:

答案 0 :(得分:2)

您可能收到此Apple警告不是因为您的应用程序本身,而是因为第三方库未编译为PIE。例如,如果您使用的是Marmalade SDK Engine,您将收到此警告(他们将在9月修复它)。

但您可以尝试在Build Settings中添加更多编译器标志:

其他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

答案 1 :(得分:0)

我得到了Apple的回复

  

非PIE二进制文件 - 可执行文件“ProductManualApp.app”不是位置无关的可执行文件。请确保将构建设置配置为创建PIE可执行文件。

根据我对谷歌的研究,很多人都说它与“不要创建独立可执行位置”有关。我认为应该保持默认,即“否”