ios - 如何删除警告 : "-pie being ignored. it is only used when linking a main executable"

标签 ios xcode cocoapods

enter image description here

自从更新到 Xcode10 和 Swift 4.2 后,我的 pod 中总是会收到此构建时间警告。我需要做什么才能删除这些警告?

我曾尝试删除派生数据、清理和构建项目,但它不起作用:(

我发现有人在这里问同样的问题 https://github.com/Alamofire/Alamofire/issues/2624 Jon Shier 给出了一个答案,但是在删除之前的 xcworkspace 和更新 cocoapods 后我仍然无法解决问题,我还没有实现更改“生成位置相关的可执行文件”设置,因为我找不到它。如果您能找到此问题的解决方案,请分享:)

最佳答案

将“生成位置相关代码”设置为"is"感觉不是正确的解决方法。位置无关是首选。框架和库等非应用程序目标无论如何都将始终独立于位置,因此会出现警告。

显示的警告是链接器消息,@Marcpek 的屏幕截图中的其他设置似乎更合适:“链接 > 生成位置相关的可执行文件”。 QuickHelp 显示这是 LD_NO_PIE 设置。

Generate Position-Dependent Executable LD_NO_PIE setting

尽管这从操作系统默认值中继承了 No,但我尝试在我的 CocoaPod 目标中再次将其显式设置为 No,这似乎有效,修复了链接器警告。

您所做的任何项目设置都将在您下次运行 pod install 时丢失,因此请编辑 Podfile 以使更改永久生效。添加 config.build_settings['LD_NO_PIE'] = 'NO' 到 post_install 阶段:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['LD_NO_PIE'] = 'NO'
        end
    end
end

关于ios - 如何删除警告 : "-pie being ignored. it is only used when linking a main executable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52789127/

相关文章:

ios - 图像仅在 swift 3 中的 Whatsapp 上共享

ios - 为什么 Swift 中的方法可以有没有类型的参数?

iphone - 找不到名为 'MainStoryboard_iPhone' 的 Storyboard

ios - AFNetworking Pod 安装不工作

ios - 需要具有推送通知功能的配置文件

ios - 如何恢复保持的 CallKit 调用

ios - 在自定义 .plist 文件中使用用户定义的build设置

ios - 使用资源包发布 cocoapod

ios - 安装 pod 文件后构建 IOS 应用程序时出错

ios - UITableViewDataSource 异步加载