前言:在iOS开发中,有时候想改一下项目的名字,都会遇到很多麻烦。直接改项目名吧,XCODE又不会帮你改所有的名字。总是有很多文件、文件夹或者是项目设置的项。而且都是不能随便改的,有时候改着改着,编译不了。所以各位重命名项目时,记得先备份好一份噢。本文我会介绍一种方法,是我自己参考了很多资料得出的总结。
为什么说是完整呢?因为改名之后,你不会再看到任何有关于之前的项目名字。
本文会把一个项目名叫“test233333333”改成“test”。
1)打开项目:
以上是目前的项目结构。
2)选中项目设置并按下回车,输入新的项目名字:
3)输入完后按回车,弹出改名前和改名后的文件对名,这时点击“Rename”:
4)这时会再弹出一个对话框,直接点击“Enable”:
5)这时你会发现,还有很多的“旧”项目名字的文件/文件夹:
不要紧,继续往下看,一起把这些“旧”名字消灭掉。
6)我们先把这两个文件夹改一下名字:
改前:
改后:
这里的testTests,原先为test233333333Tests,我们改名字时需要注意,只需要把旧名字(test233333333)替换成新名字(test)即可,不要把其它字符(Tests)删除!
7)选中这个类文件,更改类名字时不能直接重命名,需要使用Xcode内置的更改类名功能:
点击@interface后面的类名:
按照下图步骤操作(Edit->Refactor->Rename):
输入新的类名字:
点击Save:
8)我们再次看一下我们的目录结构,已经全部都改过来了,但是现在编译是不会通过的:
9)我们试着Build一下, XCode报了这样一个错误,找不到连接文件:
这是因为还有很多项目的设置项需要改一下名字,目前现在Xcode还是指向了之前的那个项目名字。
10)全局搜索之前的项目名字并替换成新项目名字:
注意:这里只是替换一下注释,真正的项目设置需要我们手动操作。
11)全局搜索旧项目名字出来的界面,我们点击进去更改名字:
点击之后会自动跳转到这个界面,双击值进行更改(下面改名的步骤也一样):
更改完之后,还得再改一些东西。不要问为什么这么麻烦,只因任性。
注意:继续全局搜索替换,直到全局搜索不到旧名字为止!
12)打开项目文件夹,继续更名:
更名后:
回到项目看一下,文件全发“红”了。不要紧,正常的:
13)更改相对应文件夹的资源文件夹路径:
13.1)选中test文件夹:
13.2)点击文件夹小图标,更改路径:
找到刚才改好名字的文件,点击choose。下个文件夹(testTests)步骤重复以上的。
改好之后,再次Build,这时已经通过。
项目完整重命名之后的效果截图:
项目结构:
项目真实目录结构:
小结:没有改过项目的朋友,改之前记得先备份好噢。
(本文作者:GarveyCalvin)

公众号:CocoaChina
相关资讯
综合评论
- 分析的太NB了,但是我觉得作者分析的太透彻,导致整篇文章结构性缺失,作为一个程序猿,我是硬憋着一口气读完的,希望作者能整理一下结构,帮助没有耐心的程序猿也能读一下,写的挺好的,很受用
zengqingf评论了《招聘一个靠谱的iOS》面试题参考答案(上)
- mark
447690182@qq.c评论了breakpoints、lldb 和 chisel...
- SourceTree&BeyondCompare确实是Git的好伴侣,一直在用的Araxis Merge也非常不错
fan2评论了Git的好伙伴:SourceTree & Beyo...
- 通过系统数值的成长来“弥补”玩家自身在能力提升上的瓶颈。是弥补吗?是激励吧。原来欺负你的怪兽,现在打你根本不掉血,不就是对以前的压抑的宣泄嘛。
qingwabote评论了游戏核心玩法设计指南之一
- 为什么我的core animation 中没有frames Per Second这个选项
clcj3219评论了小心别让圆角成了你列表的帧数杀手
- mark
447690182@qq.c评论了如何手动解析CrashLog
- 之前不是转发过一次了么?这也太省事了吧。。。
xhk18评论了我们为什么需要动效设计
- 很好,比2好多了,原来都说reeder好我看着感觉一团糟,这次确实很舒服实用。
lylsh1993评论了著名RSS阅读器 Reeder 3 for Mac...
- 在使用ACR+GCD实现单例时使用如下方式实例化对象 BVARCSingleton *f1 = [[BVARCSingleton alloc] init]; BVARCSingleton *f2 = [[BVARCSingleton alloc] init]; BVARCSingleton *f3 = [BVARCSingleton sharedInstance]; NSLog(@"%@ %@ %@", f1, f2, f3); 打印出的三个对象的地址是不同。请问,此问题如何解决?
站在山顶的蚂蚁评论了iOS设计模式(02):单例模式
- Deadline神马时候由程序员定的。。。从来都系产品经理说了算,程序员加班骂声中完成啊
NearKong评论了你哭着对我说,程序员都是乐观的
相关帖子
