前言:在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)全局搜索之前的项目名字并替换成新项目名字:Find -> Find and replace in workspace...

注意:这里只是替换一下注释,真正的项目设置需要我们手动操作。

11)全局搜索旧项目名字出来的界面,我们点击进去更改名字:

点击之后会自动跳转到这个界面,双击值进行更改(下面改名的步骤也一样):

更改完之后,还得再改一些东西。不要问为什么这么麻烦,只因任性。

注意:继续全局搜索替换,直到全局搜索不到旧名字为止!

12)打开项目文件夹,继续更名:

更名后:

回到项目看一下,文件全发“红”了。不要紧,正常的:

13)更改相对应文件夹的资源文件夹路径:

13.1)选中test文件夹:

13.2)点击文件夹小图标,更改路径:

找到刚才改好名字的文件,点击choose。下个文件夹(testTests)步骤重复以上的。

同理,更改testTests文件夹。改好之后,再次Build,这时已经通过。

项目完整重命名之后的效果截图:

项目结构:

项目真实目录结构:

小结:没有改过项目的朋友,改之前记得先备份好噢。

博文作者:GarveyCalvin

博文出处:http://www.cnblogs.com/GarveyCalvin/

本文版权归作者和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作!

活着,就是为了改变世界! 

http://www.cnblogs.com/GarveyCalvin/p/4195745.html

补充:

1,修改运行那里的名称,点击项目名称 -> Manage Schemes... -> 点击项目名称修改

2,如果项目里使用了cocoapods,还需要修改xxx.xcworkspace

3,修改项目的根文件夹

4,最后,把模拟器里的项目删掉,clean一下,把缓存DerivedData清下,在运行项目,如果运行成功,则修改完成!

iOS开发项目名称修改的更多相关文章

  1. IOS 项目名称修改(XCODE4.6)

    最近为了保存苹果商店已有版本软件,打算重新上传一个程序,与原来的软件仅样式不同.在修改网plist文件中的名称后,archive时报错了,结果发现时工程名称没有修改到.下面就与大家分享下修改已有项目名 ...

  2. iOS开发项目之MVC与MVVM

    MVC MVC,Model-View-Controller,我们从这个古老而经典的设计模式入手.采用 MVC 这个架构的最大的优点在于其概念简单,易于理解,几乎任何一个程序员都会有所了解,几乎每一所计 ...

  3. VS项目名称修改

    阅读数:11141 VS中新建一个项目,如果开发工作都接近尾声,客户来要求更换项目的名称,差不多要变更整个解决方案中项目名称,引用等等,这个工作量还是很大的.上网搜索解决方法,还实验了专门的修改项目名 ...

  4. iOS开发项目实战——Swift实现图片轮播与浏览

    近期開始开发一个新的iOS应用,自己决定使用Swift.进行了几天之后,发现了一个非常严峻的问题.那就是无论是书籍,还是网络资源,关于Swift的实在是太少了,随便一搜全都是OC实现某某某功能.就算是 ...

  5. iOS开发——项目篇—高仿百思不得姐

    01 一.包装为导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewControll ...

  6. iOS开发项目之一 [ 项目流程]

    项目流程 *人员配置 *客户端(iOS工程师,Android工程师) *前端 h5 *后台人员(php,java,net) *提供接口(请求地址.请求参数,请求方式,接口文档) *UI UE * 效果 ...

  7. 简单搭建iOS开发项目框架

    今天我们来谈谈如何搭建框架,框架需要做一些什么. 第一步:找到我们的目标我们的目标是让其他开发人员拿到手后即可写页面,不再需要考虑其他的问题. 第二步:我们需要做哪些东西各位跟着我一步一步来进行. 假 ...

  8. iOS开发项目实战——Swift实现ScrollView滚动栏功能

    手机作为一个小屏设备,须要显示的信息往往无法在一个屏幕上显示,此时就须要使用到滚动栏,当然除了像TableView这样能够自带滚动功能的. 假设一个界面上View较多,那就必须要使用到ScrollVi ...

  9. iOS开发——项目实战总结&经典错误一

    经典错误一 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7, VA 运行报错 出现的原因:armv7s ...

随机推荐

  1. WPF利用依赖属性和命令编写自定义控件

    以实例讲解(大部分讲解在代码中) 1,新建一个WPF项目,添加一个用户控件之后在用户控件里面添加几个控件用作测试, <UserControl x:Class="SelfControlD ...

  2. @AutoWired使用

    Spring MVC @autowired的使用: spring MVC使用注解配置方式相对于xml配置方式具有很多优势: 充分利用java的反射机制获取类的结构信息,这些信息可以减少配置的工作!Sp ...

  3. STL模板_map

    map -key - value -键值无法重复 multimap -键值可以重复 声明: -map<int, string> m -multimap<int, string> ...

  4. 基础知识——Cocos2d-x学习历程(三)

    1.场景与流程控制 我们把一些内容相对不变的游戏元素集合称作场景(scene),把游戏在场景之间切换的过程叫做流程控制(flow control). 在Cocos2d-x中,场景的实现是Scene. ...

  5. BZOJ 3110: [Zjoi2013]K大数查询( 树状数组套主席树 )

    BIT+(可持久化)权值线段树, 用到了BIT的差分技巧. 时间复杂度O(Nlog^2(N)) ---------------------------------------------------- ...

  6. Java多线程yield

    前言: 前几天复习了一下多线程,发现有许多网上讲的都很抽象,所以,自己把网上的一些案例总结了一下! 一. Thread.yield( )方法: 使当前线程从执行状态(运行状态)变为可执行态(就绪状态) ...

  7. 在sqlite中使用索引

    出处: 网络 1)Sqlite不支持聚集索引,android默认需要一个_id字段,这保证了你插入的数据会按“_id”的整数顺序插入,这个integer类型的主键就会扮演和聚集索引一样的角色.所以不要 ...

  8. php phalcon

    1. 准备所需工具 1) php环境 浏览 2) phalcon插件 浏览 2. 安装phalcon 将php_phalcon.dll拷贝到%PHP_HOME%\ext目录中 修改php.ini文件, ...

  9. 树莓派高级GPIO库,wiringpi2 for python使用笔记(三)GPIO操作

    GPIO库的核心功能,当然就是操作GPIO了,GPIO就是"通用输入/输出"接口,比如点亮一个LED.继电器等,或者通过iic spi 1-wire等协议,读取.写入数据,这都是G ...

  10. 关于scanf("%c",&ch)直接跳过的问题

    有时候scanf("%c",&ch)本应该阻塞等待用户输入一个char型数据的,但为什么会跳过呢? 例:在该程序段中,  int year;    printf(" ...