https://www.cnblogs.com/liangyi-cn/p/8657474.html

前言:

在iOS开发中,有时候想改一下项目的名字,这会遇到很多麻烦。

  • 直接改项目名的话,Xcode不会帮你改所有的名字
  • 项目中的很多文件、文件夹或者是项目设置的项,都是不能随便改的,有时候改着改着,就会编译不了。

所以各位重命名项目时,记得先备份好一份噢。本文我会介绍一种“完美”的修改方法。

注意:重命名项目时,记得先备份好一份
注意:重命名项目时,记得先备份好一份
注意:重命名项目时,记得先备份好一份

重要的事情说三遍

本文会把一个项目名叫 OldDemo123 改成 NewDemo

正文:

修改前的项目结构:

 
修改前的项目结构
1、打开项目,对项目名进行 Rename

1.1、选中项目名并按下回车,进入可编辑状态:

 
选中项目名字,进行编辑

1.2、输入新的项目名字,然后按回车,弹出改名前和改名后的文件对名,这时点击 Rename

 
点击 **Rename**
2、修改文件夹名字和显示包内容

2.1、打开应用所在文件夹,修改文件夹名字

注意:

  • 文件夹NewDemoTestsNewDemoUITests里面也要修改
  • 这里的NewDemoTests,原先为OldDemo123Tests
    我们改名字时需要注意,只需要把旧名字(OldDemo123)替换成新名字(NewDemo)即可,不要把其它字符(Tests)删除!
 
修成后的文件夹名字

2.2、选中 NewDemo.xcodeproj 右键打开 --> 显示包内容 --> 双击打开 project.pbxproj 。

 

显示包内容,双击打开 project.pbxproj

2.3、打开 project.pbxproj 文件之后,用搜索快捷键 command + f 全局搜索旧的项目名 OldDemo123 ,并用新的项目名 NewDemo 进行替换。替换完成后进行保存 command + s,然后关闭。

注意:要把所有的 OldDemo123 更换成 NewDemo

 
 
搜索 OldDemo123 ,并替换成 NewDemo
3、打开 NewDemo.xcodeproj 文件

注意:打开的是 NewDemo.xcodeproj 文件,而不是 NewDemo.xcworkspace文件。

3.1、此时会弹出提示框,点击 OK 就行。

 
弹出提示框
弹出提示框

3.2、显示此时项目结构和修改更新Podfile文件

 
修改好项目结构

如果你的项目里面没有使用CocoaPods的话,项目应该可以运行成功了。

使用CocoaPods的话,项目虽然表面看起来已经修改成功了,但是运行之后发现提示错误:

 
使用CocoaPods的话,会提示的错误

此时打开项目文件夹,找到 Podfile 文件,双击打开,修改 target 后的项目名为最新的项目名 NewDemo

target 'NewDemo' do

pod 'AFNetworking', '~> 3.0'

end

然后在终端,用 cd 到项目目录下,运行 $ pod install,进行更新。

3.3、打开 NewDemo.xcworkspace 文件
此时文件显示错误:因为文件路径的原因

 
错误显示

选中显示红色的 OldDemo123 文件,点击右侧文件夹小图标,更改路径。

 
修改文件路径

路径更改成功之后,项目基本就可以运行成功了。

4、修改 Scheme 名

选中 OldDemo123 --> 下拉中选中 Manage Schemes --> 弹出一个显示框。

 
修改Scheme名
修改Scheme名

选中要修改的 OldDemo123 那一行,并按下回车,进行修改新的名称 NewDemo,然后点击 Close

 
修改新的 Scheme 名
5、项目内全局修改、替换

其实到上面,项目已经基本修改完成了,但是对于一些处女座、强迫症患者来说,还有一些问题,如下:

 
生成类时的顶部介绍

5.1、全局搜索旧的项目名

 
全局搜索

5.2、把 Find 修改为 Replace,输入新的项目名,点击 Replace All 全局替换。

 
全局替换

最后:

到此,项目名已经完全修改完成了,小伙伴们可以尝试修改了。

下面是修改后的项目结构:

 
修改后的项目结构

注意:重命名项目时,记得先备份好一份

转载出处:
作者:0_0
链接:https://www.jianshu.com/p/2887d6fb5769
來源:简书

在iOS项目中,这样才能完美的修改项目名称的更多相关文章

  1. 直接在CMake项目中编译GoogleTest和GoogleMock作为项目的一部分

    直接在CMake项目中编译GoogleTest和GoogleMock作为项目的一部分 本文是关于如何将GoogleTest和GoogleMock在没有预先编译安装在机器的情况下,直接在项目中作为项目的 ...

  2. 使用ShareSDK实现第三方授权登录、分享以及获取用户资料效果,项目中包含:源码+效果图+项目结构图

    [Android应用开发详解]第01期:第三方授权认证(一)实现第三方授权登录.分享以及获取用户资料   由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折, ...

  3. 在Swift项目中使用OC,在OC项目中使用Swift

    几天前,我开始新的App的开发了.终于有机会把swift用在实战中了,也学到了之前纯学语法时没有机会获得的知识. 这篇博文中,我就如何使用swift.OC混编做一个介绍. OC中使用Swift 首先, ...

  4. IT项目中使用 json格式数据 保存项目配置信息, 在配置文件再读取json文件的内容进行赋值

    json格式小巧玲珑,适合做配置文件,特别是大型项目中, 可以将配置信息分类保存到不同的json文件中, 然后再在配置文件中读取配置文件的数据进行赋值, 这里以python为例进行说明: 假设在you ...

  5. 怎样在Web项目中的service业务层获取项目根路劲

    这里我们有两个前提 1.没有使用struts2框架.没有使用servlet,无法给service层传递request对象. 2.使用了Spring框架. 那你可能问.会有这样的情况吗?答案是有的,比方 ...

  6. react项目中对dom元素样式修改的另一种方法以及将组件插入到node节点中

    在项目中,以前如果遇到对dom元素的操作都是直接获取dom元素,比如说: 但是如果修改的样式比较多的话,不如直接"切换"dom元素,如下例子: 这样会节省一些性能.因为操作dom的 ...

  7. 在Qt项目中如何添加一个已有的项目作为子项目

    新建一个子目录项目(具体方法参见<类似Visual Studio一样,使用Qt Creator管理多个项目,创建子项目>),然后需要添加的项目移动到该子目录项目目录下,再在其pro文件中添 ...

  8. PHP自练项目中个人中心创建,修改,验证(服务器端和客户端验证)

    当注册成功到登录后进入个人中心,查看和修改自己的资料 第一步:创建个人中心: <?php //定义个常量,用来授权调用includes里面的文件 define('IN_TG',true); // ...

  9. 【IntelliJ IDEA】idea导入项目只显示项目中的文件,不显示项目结构

    导入项目之后,只显示项目文件,不显示项目结构 解决方法 1.点击file->project structure..->Modules 点击右上角+加号 ->import Module ...

随机推荐

  1. fiddler抓包手机准备工作

    1.勾选connections中的:Allow remote computers to connect 2.cmd中查找IP 3.在手机连接的WiFi中设置手动代理为:IP port:8888 4.在 ...

  2. mybatis的8月29日

    一.select查询语句 1.mybatis的映射,jdbc预处理 <select id="selectPerson" parameterType="int&quo ...

  3. weinre 真机调试

    1.在任意文件夹 安装weinre cnpm -g install weinre 2.启动 weinre --httpPort 8009 --boundHost -all- 3.在你的页面中加入 本机 ...

  4. Redis-复制(MasterSlave)

    Redis的复制(Master/Slave) 是什么: 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave ...

  5. 6_9 天平(UVa839)<二叉树的DFS>

    前一个ubiquous通信小工具,移动只是一个由弦和电线组成的结构五彩缤纷的东西.这种移动通常被发现悬挂在小婴儿的摇篮.图说明了一个简单的移动.它只是一个电线,悬挂的一个字符串,每一个对象的对象.它可 ...

  6. html学习3-CSS补充

    position fixed:把标签固定在页面的某处 例子:使用fixed制作“回到顶部”按钮 <!DOCTYPE html> <html lang="en"&g ...

  7. Python MySQLdb中执行SQL语句传入的参数应该要加上引号如果该字段是str类型的

    如下图: username在表中是字符串类型的,所以传入的参数要加上引号

  8. SpringCloud全家桶学习之概览(一)

    一.概览 根据百度百科的描述,微服务架构是一项在云中部署应用和服务的新技术.而SpringCloud是微服务架构思想的一个具体实现,它为开发人员提供了构建分布式系统中一些常见模式的工具(服务注册与发现 ...

  9. Eclipse Tomcat 7.0 添加WEB项目报错:Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules

    前言 我叫梅乾花,我误闯了“从零开始的程序世界”,遭受到了前所未有的的困难,为了活下去,为了看见美好的明天,我开始学习之旅. 问题篇我打开了"Eclipse",将项目导入其中,开启 ...

  10. 如何使html中的元素不被选中

    有时候,为了提高用户的体验度,需要使网页中的部分内容防误操作,不被选中,比如今天的商城项目中的一个细节部分: + —号其实是a标签做的,当连续点击多次,就会使符号被选中,这样感觉起来不太好,于是查找解 ...