当在Xcode中复制一个目标时,是否有任何方法来设置目标在之前或创build时的名称?

在Xcode中复制目标是创build多个应用程序或框架/库产品的好方法,这些应用程序或框架/库产品使用与由目标构build设置或相关scheme中设置的环境variables控制的条件代码的结果相同的代码库, 首先复制已知工作的基本版本,然后设置每个目标将使用的环境variables,然后使用内联预处理程序#ifdef语句开始分解代码行为。

但是,任何重复的目标都将被命名为“原始目标名称副本”。 这可以重命名,但info.plist也会有这个名字,也可能出现在几个基本的构build设置中,并且可能是一个单调乏味和错误引入的过程来删除所有对非信息性副本的引用“重复目标名称的版本取决于你如何做。 当我创buildiOS框架时,这似乎特别容易引入问题。

我的问题是,是否有任何复制一个目标的技术,允许您在复制时指定新的目标名称,所以永远不会有临时错误的目标名称或任何包含该临时错误名称的文件被创build。 或者,或者,如果有某种方法可以使用“重构”function来解决这个问题,那么这是一种自动化的方式。

如果问题中包含某种错误的假设,这就解释了为什么这个特性没有包含在Xcode中,让我知道。 我正在使用4.3。

不幸的是,我敢肯定,目前还没有任何UI,尽pipe我非常赞同这是一个巨大的进步。 我不能为每个人说话,但我几乎想要名为Foo副本的目标。 我会build议提交一个雷达 。

你可以通过一些努力来使用CMake 。 这是一个构build系统生成器。

开始学习和设置项目可能很困难,有些事情对于Xcode来说(当前)是不太可能的(比如增加资源),但是它会使基本configuration非常容易创build新的目标。

基本上,你在你的源代码树中编写CMakeLists.txt文件来定义你的库和目标,然后定义源文件等,然后每次生成Xcode项目。

添加一个新的目标将是非常简单的:

  1. ADD_EXECUTABLE( Target_Name Source_Files )
  2. SET_TARGET_PROPERTIES( Target_Name PROPERTIES COMPILE_DEFINITIONS Your_Additional_Defines )
  3. 重新运行CMake。 (它甚至不需要closuresXcode项目)

缺点:

  • 花时间安装。
  • 有时研究是必要的,以获得一些东西的工作
  • 有些事情目前没有通过CMake很好的支持

在Xcode 6(不知道早期版本)复制目标仍然会生成“复制”的附录,并重命名所有本地化的菜单,例如。 但是,通过更新“构build设置/全部打包”下的“产品名称”是可逆的。 尽pipe如此,Info.plist仍然需要照顾以及Scheme的命名。

双击目标至less重新命名目标…仍然在寻找重命名的产品,但这并不重要,如果你可以重命名的一切(如显示名称等))

  • 在导航器面板中select项目
  • select您想要复制的目标
  • 点击鼠标右键并select“复制”
  • 在XCode中重命名目标:单击选中的目标并开始内联编辑。
  • 打开terminal并转到您的项目目录/文件夹
  • 运行svn状态来查看XCode刚才所做的更改。
  • XCode创build了新的Infocopy.plist文件,并在版本控制下添加,如果您使用。 通常,您要select不同的名称,请按照下列步骤操作:
  • 取消版本控制另外:$> svn还原Infocopy.plist
  • 重命名它:$> mv Infocopy.plist YourNameInfo.plist
  • 将它添加到版本控制:$> svn add YourNameInfo.plist
  • 在名为“Info.plist文件”的新的Target Build Settings中设置新名称
  • 正确重命名目标文件:$> mv OrigTargetCopy.xcscheme YourTargetName.xcscheme
  • 在版本控制下添加新的目标文件:$> svn add YourTargetName.xcscheme
  • 在名为“产品名称”的新目标构build设置中重命名产品
  • 很可能你也想为你的新目标设置新的“预处理器macros”生成设置。
  • 为YourNameInfo.plist设置适当的值
  • 为目标特定文件设置目标分配。 通常YourNameInfo.plist应该只是你新的目标的一部分。 可能有很多其他类似的文件(图标,闪屏,其他graphics等)。