我遇到了创建Xcode编译器插件的问题,该插件看起来是Xcode生成编译行的问题的结果,以及平台SDK如何覆盖其中一些选项。
创建自定义编译器插件时,在为MacOSX构建应用程序时可以正常运行。我在为iPhoneOS构建应用程序时发现了一个问题。 SDK不断抱怨min-iphoneos-version变量中的值无效,原因是这不是在编译命令行中设置的。查看适用于Xcode5的iPhoneOS平台SDK,您会注意到该设置已在'Native Build System.xcspec'
文件(Applications/Xcode.app/Contents/Developer/Platforms/iPhone*.platform/Developer/Library/Xcode/Specifications/)
中定义。基本上,根据我可以收集的内容,查询此文件并使用此命令行选项覆盖-mmin-macosx-version标志,这将导致Apple编译器的有效构建。但是,创建自己的编译器插件并随之出现问题,因为新编译器将 与“Native Build System.xcspec'
文件中的任何”编译器“定义匹配。
我只能想到几个解决方案,
'Native Build System.xcspec
'文件,导致一个可怕的解决方案,需要为Apple的构建系统制作不受支持的补丁。如果将新的.xcspec文件作为资源添加到PrivatePlugIns目录中的插件中,是否会在构建时解析所有这些文件?如果是,则可以将这些设置添加到文件中,例如
Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneSimulator Build System Support.xcplugin/Contents/Resources/MyPlugin.xcspec
有没有其他人反对这种“路障”(咳嗽,设计问题)?