本文转载自:http://www.jianshu.com/p/5f088acecf64
本教程使用的 Xcode 版本是Xcode 6.3.1,网上有好多的教程,都是在 Xcode 4 上做的讲解,现以本文章讲解一下如何在 Xcode 6.3.1 中重命名你的项目名称,包括你的应用名称。
0、写在前
Xcode,作为开发 iOS App 的 IDE,对于大多数开发人员而言非常熟悉。但是,如何给一个已有的项目重命名呢?相信并不是所有的开发人员都会知晓,这些有时也是合理的需求,看到一个不错的开源项目,如何更改项目名称呢?还有,如果项目在版本迭代过程中需要更改整个工程的名称,又怎么办呢?重命名!
下面就跟着我,一起为一个已有的项目重命名吧!
1、准备
PS:不要在你现在的工程中,做下面的操作。所以我们需要准备一个新的工程取名为 RenameDemo,一会儿,我们会将其改为 NewNameDemo,好了,话不多说,开始我们的教程,创建一个工程取名 RenameDemo。
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0TVRjeU1qRTBZV1kzTWpkbU0yTTROeTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
取什么名无所谓,随你个人的喜好,接下来,我们重命名它吧!
2、让 Xcode 为我们做点什么
Xcode 其实可以为我们做很多的东西,给我们的Project、target更改名称这个是它做的最主要的功能。
打开 Xcode 的 File Inspector,也就是 Xcode 中最右侧的一栏。
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0TWpreE1UYzJPV0ZoT0RNM1lqRTRNQzV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
图中标红的地方,就是们需要更改的地方
现在我们将其改为我们之前说好的新的工程的名称NewNameDemo。在 Identity and Type 中的 Name 中,我们输入NewNameDemo ,然后敲回车,你就会看到如下的界面。
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0WXpoaU9HUXhZV1l4TWpreE5XUXdZaTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
这里,Xcode 列举出了可以为我们做的更改两个 target 的名称,这个更改,其实也是为我们的 App 变名称了,如果你没有自己设定 App 的名称的话,咱们之前的 App 应该是 RenameDemo ,现在如果,重命名成功的话,就会变成 NewNameDemo 。
点击 Rename,让 Xcode 为我们重命名一部分。此时,会提示你需不需要 Xcode 为你做 snapshot,我们这里选择 Enable ,这个是一个 Xcode 功能,我们也可以在 File > Project Settings 中关掉它。
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0TVRSbVkyUmlaakV6TVRKak5EYzVZeTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
点击 Enable 之后,Xcode 6.3.1跟低版本 Xcode 不同的是项目,这个项目不能再继续运行调试了。最顶部会变成下面的样子。
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0WldaaE9EVmlaalpoT1Raa05HSmtPUzV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
处理这个问题很简单,关闭工程,让后重新打开!在重新打开之前,为了重命名的完整性,我决定在 Finder 中把相关的文件夹也重命名。
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0T0RRM09EVmpabVpoWW1ReU9XVmpZaTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
Xcode为我们做的其实就是把它自己的工程文件重命名了,并且修改了里面的配置信息。我们需要做的是更改剩余的工程信息,在这里,只需要更改文件夹就好了,不用更改其他,因为其他的我们可以在打开 Xcode 之后再改。
修改工程目录为NewNameDemo
修改源文件目录NewNameDemo
修改测试文件目录NewNameDemoTests
修改之后是这个样子
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0TlRCak56UXdNbU5oTmprNU9EazBOaTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
3、重新打开该工程
会有如下的提示
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0WVdabVpEVXdPRGt3WWpjeU9XTmhOQzV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
有几处变化使我们所能看到的
a)工程又可以运行了,变为了我们所熟悉的工程。
b)有很多标红的文件
c)提示我们找不到 Image.xcassets 文件
对于c),简单的 OK 就可以了。
如果你观察细致的话,还有一个地方就是,项目的 info.plist 文件找不到了。
4、给 group 找真正的实体文件夹
选中 RenameDemo 这个 group ,再查看右侧的 Inspector ,发下这个 group 是一个相对的位置,我们只有修改它的关联就好了。
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0TVRjMlpUSm1ZalF6TWpFMU9HSTJNUzV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
看右侧标红的地方,点击一下,就会让你去选择这个文件的真实位置。
我们找到真实的位置如下:
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0WVRRMll6azBNVEptWTJZM056azRZeTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
选择标红的文件夹,点击 Choose ,你会发现,之前变红的文件,都变成了实体文件
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0T1RrelpqQmhZakV5T1RsbFptWTNOUzV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
同理的,我们为 test 源文件目录也添加上。
添加好之后,你就会看到如下的界面
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0TXpWbVlqUXdOemRqTldJMVpXTTBaaTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
5、为我们的工程找到 info.plist 文件
点击 Choose info.plist File
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0T1dNMllUSXhOakJqWm1RME1UQXlNUzV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
点击 Choose 就成功添加了,需要有一个地方需要改变的就是在 App Icons and Launch Images 中的 Launch Images Source 选择 Use Asset Catalog
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0TTJVMU1EVXhNemMxT1RGaVlUVTNZaTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
点击 Migrate 合并 App 需要的 Icons。
6、为你的 Test Target 选择 info.plist
选择 NewNameDemoTests target,并选择 Build Settings 标签,搜索一下plist,你就会看到如下的界面
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0TUdNd1kyWTRNREptTmprNFpHVmhaaTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
修改2位置的内容为 NewNameDemoTests/Info.plist
7、为你的Test Target 选择 Host Application
更改了 plist 文件,还需要设置一下 test 的 Host Application。
在NewNameDemoTests 的General 标签选择 Host Application
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0TlRWaU9XSmxNRGhrTWprMVpUaGpOaTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)
8、编译
现在,你可以编译你的工程了,如果按照步骤来的话,应该是可以编译成功的。
9、如果,你有小小的代码洁癖那就更改一下 group 名称吧
把源文件分组名称和 test 源文件分组名称改成NewNameDemo和NewNameDemoTests
还有,你还可改一下系统默认给你创建的一个 test 文件。
![iOS Xcode 项目重命名 iOS Xcode 项目重命名](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9MeTkxY0d4dllXUXRhVzFoWjJWekxtcHBZVzV6YUhVdWFXOHZkWEJzYjJGa1gybHRZV2RsY3k4MU16STJPREV0T1RJd016YzNPVEJpTkdJd09UTmlZeTV3Ym1jX2FXMWhaMlZOYjJkeU1pOWhkWFJ2TFc5eWFXVnVkQzl6ZEhKcGNDVTNRMmx0WVdkbFZtbGxkekl2TWk5M0x6RXlOREF2Y1M4eE1EQT0%3D.jpg?w=700&webp=1)