当前位置: 首页 > 面试题库 >

Xcode构建阶段脚本编写教程或指南

秦楚
2023-03-14
问题内容

我想使用Xcode中的脚本将一些文件添加到“编译源”构建阶段,该脚本从某些文件夹引用中提取。到目前为止,我找不到太多的文档。

  1. 用于编写Xcode构建阶段脚本的常规文档(或指南)在哪里?
  2. 如何将文件添加到“编译源”阶段?
  3. 我如何发现有关项目及其中文件夹引用的信息?
  4. 如果我想使用Ruby或Python与bash脚本编写脚本,是否有任何特殊考虑?

问题答案:

Compile Sources使用脚本将文件添加到构建阶段,您将需要以project.pbxproj编程方式操作项目的文件。

一般而言,您可以通过将project.pbxproj文件解析为内存中的数据结构,然后通过编程接口操作该数据结构,然后将数据结构写到新project.pbxproj文件中来实现此目的。

有几个项目可能会帮助您做到这一点,我没有尝试过其中的任何一个:

  • https://github.com/owlforestry/pbxproject
  • http://github.com/gonzoua/pbxproj/
  • https://github.com/facebook/three20/blob/master/src/scripts/Pbxproj.py
  • http://code.google.com/p/xcodeutils
  • https://github.com/appcelerator/titanium_mobile/blob/master/support/iphone/pbxproj.py

这是一系列博客文章,其中包含有关XCodeproject.pbxproj文件的内容和格式的大量常规信息。

  • http://danwright.info/blog/2010/10/xcode-pbxproject-files/
  • http://danwright.info/blog/2010/10/xcode-pbxproject-files-2/
  • http://danwright.info/blog/2010/10/xcode-pbxproject-files-3/

最后,值得一提的是,对于非常简单的操作,尤其是如果您不担心project.pbxproj文件的结构变得混乱,可以按照此的建议在project.pbxproj命令行上解析文件,例如所以:

plutil -convert xml1 -o - myproj.xcodeproj/project.pbxproj

解析愉快!



 类似资料:
  • 当 Gradle 执行一个脚本时,它会将这个脚本编译为实现了 Script 的类. 也就是说所有的属性和方法都是在 Script 接口中声明的,由于你的脚本实现了 Script 接口,所以你可以在自己的脚本中使用它们.

  • Gradle 是以 Groovy 语言为基础, 基于DSL (领域特定语言) 语法的自动化构建工具,但是它增加了一些额外的特性,这使得Gradle更加的容易去阐释构建. 一个构建脚本能够包含任何Groovy语言的元素 ( Any language element except for statement labels ), 每个构建脚本都使用UTF-8编码.

  • Groovy 提供了大量的特性用来创建 DSL. Gradle 构建语言知道 Groovy 语言的工作原理,并利用这些特性帮助您编写构建脚本,特别是您在编写 plugin 或者 task 的时候,你会觉得很方便.

  • 在第七章 Java构建入门那部分我们使用了 apply() 方法,这个方法是从哪里来的呢? 我们之前说过Gradle在构建脚本中定义了一个项目. 对于构建脚本中每个项目,Gradle 都创建了一个 Project 类型的对象用来关联此项目. 当构建脚本执行时,它会去配置所关联的工程对象. 构建脚本中每个被调用的方法(这些方法并未在构建脚本中定义)都被委托给当前工程对象(使用工程对象引用方法)。 构

  • 在 Gradle 构建脚本中有两种类型的变量可以声明:局部变量 ( local ) 和 扩展属性 ( extra ) .

  • 本章着眼于一些编写构建脚本的详细信息。 13.1. The Gradle build language 构建语言 Gradle 提供一种 domain specific language (领域特定语言)或者说是 DSL,来描述构建。这种构建语言基于 Groovy 中,并进行了一些补充,使其易于描述构建。 构建脚本可以包含任何 Groovy 语言的元素(除了声明标签任何语言元素)。Gradle 假