Xcode 4构建设置变量用于方案脚本

9
我还在适应Xcode 4,所以如果这是一个愚蠢的问题,请原谅:
在之前的Xcode版本中,我们可以在与项目构建相关联的任何shell脚本中使用任何构建设置变量(如SRCROOT或PRODUCT_NAME等)。这可以通过将“运行脚本”构建阶段添加到任何目标轻松实现。
然而,在Xcode 4中,方案的引入(真的很好),似乎不允许使用任何这些变量。是否有可能这是设计意图?有没有解决方法?
2个回答

12
在Xcode 4.2的“运行脚本”方案操作中,有一个"Provide build settings from..."下拉菜单,您可以从中选择一个目标,以获取环境变量。如下面的屏幕截图所示: "Provide build settings from" 下拉菜单 此外,如果选择“None”,Xcode会设置一些环境变量。您可以执行类似于printenv > ~/Desktop/printenv.txt这样的操作将它们转储到文本文件中,以查看所有环境变量。
一些更有用的环境变量包括ARCHIVE_PATHSCHEME_NAMEUSERARCHIVE_DSYMS_PATHARCHIVE_PRODUCTS_PATH

3
这是一个非常实用的提示,只是不太清楚如何进入这些设置。在方案编辑器中开始,并打开左侧栏中的相应操作(例如构建)。点击例如Pre-actions,然后在主窗格底部点击加号(**+)按钮,选择“新运行脚本操作**”。然后您就可以添加脚本了。感谢@Martijn! - big_m

0

在Xcode 4中,您仍然可以像在Xcode 3中一样向目标添加运行脚本。首先,在左侧项目导航器窗格中选择项目,然后选择目标,在“Build Phases”选项卡中查找“Run Script”部分。与Xcode 3一样,这些脚本可以使用通常的变量集。

在苹果开发者论坛上阅读了一些关于此主题的帖子后,似乎苹果已经承认了预动作和后动作的限制,因此我们可能会在未来的更新中看到它得到修复(如果您尚未这样做,请向苹果提交错误报告)。


1
当然,我知道这个。我只是非常惊讶的是,方案脚本(前置和后置)不允许使用这些变量。没有它们相当无用。 - beinstein
在“参数”选项卡下方指出,“例如 $(BUILT_PRODUCTS_DIR) 的构建设置将被扩展”。果然如此。然而,先前有效的其他设置,例如$(PROJECT_DIR),似乎被忽略了。 - Max MacLeod
绝对值得向苹果(http://bugreporter.apple.com)提交一个错误报告。他们收到的报告越多,情况就会变得越好。 - kharrison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接