2009-12-14 88 views
7

我有一个相当复杂的(iPhone SDK)Xcode项目,包含许多目标 - 4个静态库,单元测试,多个示例应用程序,一个运行shell脚本的BuildAll以及一个运行另一个shell脚本的软件包。 “BuildAll”目标在项目中创建一个目录,其中有一些子目录,其内容可以分发。在Xcode中清理/清理所有内容时运行脚本

虽然当我点击“全部清理”时,Xcode不知道清理我的分发目录。我喜欢它。我似乎无法找到办法做到这一点 - 有人知道如何?


感觉就像干净清洁所有真的应该只是在Xcode的目标,我应该能够添加一个“运行脚本”阶段。据我所知,并非如此。

顺便说一句,“BuildAll”目标确实处理清理Distribution目录,所以这对我来说不是世界的尽头。在我的特殊情况下,“全部清理”实际上并没有清理干净,这只是令人不快的。

回答

0

您可以尝试通过控制单击添加>新目标...> Shell脚本目标在Groups &文件目标节点上。

然后,使用$行动变量运行脚本节点您设置的任何清理的场景上双击后可以拥有价值干净安装

最后,新创建Shell脚本目标应作为依赖项添加到主目标。

+1

“Shell脚本目标”与具有“Shell脚本构建阶段”的空目标不同吗?我已经将Build Phases添加到了我的应用程序目标中,并检查了$ ACTION环境变量,但它看起来像Xcode根本不会在clean上运行脚本。 – benzado 2009-12-26 04:49:28

+2

是的,在构建Xcode项目时,它看起来像目标和构建阶段具有不同的工作流程。 – Stream 2009-12-27 10:19:35

+1

“Shell脚本目标”完全不起作用。你需要一个“外部目标”,如下面的链接所示:http://log.yeahrightkeller.com/post/270155578/run-script-while-cleaning-in-xcode – moala 2010-11-30 16:15:39

2

您可以添加一个“外部目标”,它在外部脚本中执行清理,并将该目标添加为您的某个静态库目标的依赖项。创建目标,并将其拖放到其中一个静态库目标下。在脚本中使用$ ACTION环境变量检查操作。

+0

这仍然是最新的?我找不到使用Xcode 6 – 2015-09-25 04:43:52

+1

缺少信息的“外部目标”选项...这是什么$ ACTION env var?它能告诉你你正在运行什么样的构建阶段吗?清洗时我不知道有什么生成阶段... – 2016-09-19 12:35:34