我们在iOS开发中,难免会遇到项目做到一半要改名字的情况。如果项目名差的太大,工程名看起来总是不舒服的,就会想着为工程改个贴切的名字,那么你就为用到本文记录的内容。

如何修改工程名呢?

下面我就拿一个中等大小的项目来实际操作一下,并记录整个要修改的地方。
该项目的结构如下:

项目结构

项目中还用到了几个第三方框架:

第三方框架

接下来,就要开始修改项目名称了。假设我要把doutu改为shopping

提醒:

  • 在改工程名之前,要注意三件事:一定要备份,一定要备份,一定要备份。

1.修改大文件夹的名称

直接修改的。

修改大文件夹的名称

2.修改project名称

选中project 单击project名字 或者 选中project+回车。

 

修改project的名称之后,回车会有提示:

 

这里点击Rename,将project中部分doutu改为shopping
修改之后,哪些地方有明显变化呢?

Rename后

3.修改文件夹名称

选中文件夹 单击文件夹名字 或者 选中文件夹 回车

修改文件夹

修改之后,回车是这样的:

修改文件夹名字后

虽然在Xcode 里文件夹的名字修改了,但是实际上文件夹里的名字还是没有修改,我们需要去真实文件夹里再修改一次。

修改真实目录名称

4.修改工程中文件夹的路径

在上一步修改玩真实文件夹的名字后,工程中所有的类都变成了红色(文件找不到)。如下图所示:

 

主要是因为工程中的文件夹指引的路径不对。

 

按照如上步骤所示,找到我们刚才修改的真实shopping文件夹,点击Chose 即可。
这时候,因为文件夹关联的真实文件夹路径正确了,所有红色的文件都正常了。
这是修改后的样子:

修改后

5.全局搜索

全局搜索doutu,搜索结果如下:

7266902F-751B-42BE-BF13-FF84EB5E96BB.png

接下来是将doutu替换为shopping

DB9337FB-35A2-4509-84EB-BDF17C9BEA8C.png

点击Replace All之后,大部分doutu都会被替换为shopping,但是还是有一些顽固的残留。

替换后

可以看出,这个是project 文件中,我的第三方框架的framework Search Paths 和Library Search Paths 的路径错误。即:

 

这里只需要将doutu 修改为 shopping即可。
怎么修改呢?
有两种方式,第一种双击framework Search Paths 和Library Search Paths 后面的值,然后单独修改每个值。

双击修改

第二种方案,先将framework Search Paths 和Library Search Paths中的值都删掉,然后把第三方删除,再重新添加。

Paste_Image.png

这里点击Remove References删除,然后再把Vendor文件夹添加进工程即可。

6.修改pch文件路径

如果你的工程里添加了pch文件,因为修改了文件夹,project名字,所以pch文件夹路径也要修改。修改前编译运行,会报如下错误:

pch文件找不到

在Build Settings 中搜索Prefix,修改Prefix Header 的值。

 

上面把doutu/shopping-Prefix.pch修改为shopping/shopping-Prefix.pch即可。

7.修改info.plist文件路径

此时再次编译运行,依然会有一个错误,错误如下:

 

然后依然去 Build Setting 中搜索info.plist。

 

上面将doutu/Info.plist修改为shopping/Info.plist即可。

到这里,工程应该已经可以正常运行了。

Buid Succeeded

但是,如果你想追求完美,依然还有两个地方需要修改。

8.修改scheme 值

要修改的其实是这个地方的显示名称:

 

怎么修改呢?
点击scheme值,然后选择 Manage Schemes...

 

接下来会进入到一个弹出窗口,选中一行,点击scheme值或者 回车

 

这里把doutu 修改为 shopping就会看到 scheme 变成了shopping,如下图所示:

Paste_Image.png
 
到这里,就真的大功告成啦。Have Fun!
 
另:
   若项目中使用CocoaPods, 先到根目录删除与pod相关的文件 **.xcworkspace, 在重新pod install
 

iOS 修改APP工程名字的更多相关文章

  1. 关于PowerBuilder 9.0中如何修改项目工程名字

    关于PowerBuilder 9.0中如何修改项目工程名字,首先要找到三个文件,xxx.pbl.xxx.pbt.xxx.pbw这三个文件,为何要找这个三号个文件呢? 因为在使用PowerBuilder ...

  2. phonegap工程中修改app的名字

    针对phonegap比较高的版本,我的是6.4.0. 在phonegap工程中,当添加了iOS和android平台或多个平台后,工程进行了开发,然后觉得app的名字想修改一下(比如在手机上显示的app ...

  3. 修改kile工程名字(转)

    假设原来的工程文件名是first,要改成second1.在工程文件目录中,将first.uvopt和first.uvproj名字改成second.uvopt和second.uvproj.2.其他fir ...

  4. IOS - 修改APP桌面名称为中文名称!

    1,修改“Display Name”为想要的中文. 2,修改“bundle display name”为想要的中文.

  5. 修改app工程名 Android Studio

    1.关掉AndroidStudio,在原项目最外层文件夹和内部xxx.iml上直接重新命名, 2.然后重新打开AndroidStudio,加载项目, 3.最后

  6. iOS: 设置App的国际化和本地化

    原文链接:http://www.cocoachina.com/appstore/20160310/15632.html 前言 App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的 ...

  7. 【转】iOS 设置APP的名称(浅述APP版本国际化与本地化)

    原文网址:http://www.jianshu.com/p/a3a70f0398c4 前言 App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的名字就是Xcode在建立工程时的名 ...

  8. iOS 修改打包后的.ipa应用名字

    一.修改应用的名字 二.重新签名 下面详细介绍介绍两个步骤: 1.修改应用的名字: 1).解压.ipa文件,在Payload文件夹下有一个.app文件(如下图:)选中.app文件,右键点击“显示包内容 ...

  9. iOS获取app图标和启动图片名字(AppIcon and LaunchImage's name)

    在某种场景下,可能我们需要获取app的图标名称和启动图片的名称.比如说app在前台时,收到了远程通知但是通知栏是不会有通知提醒的,这时我想做个模拟通知提示,需要用到icon名称:再比如在加载某个控制器 ...

随机推荐

  1. linux crontab执行shell脚本中包含相对路径的问题

    实例一 test.sh文件 echo `date`>test.log 配置crontab 设置 */1 * * * * sh /data/test.sh 在/data/目录下,未找到test.l ...

  2. (转)详解HTML网页源码的charset格式

    关于HTML网页源码的字符编码(charset)格式(GB2312,GBK,UTF-8,ISO8859-1等)的解释 crifan http://www.crifan.com/summary_expl ...

  3. javascript实现倒计时(转)

    <html> <head> <title>倒计时</title> <meta charset="utf-8"> < ...

  4. float/文档流

    float : left | right | none | inherit; 文档流是文档中可显示对象在排列时所占用的位置. 浮动的定义: 使元素脱离文档流,按照指定方向发生移动,遇到父级边界或者相邻 ...

  5. mongodb安全

    1.流程: (1)创建超级管理员 (2)修改配置文件,验证身份登录 (3)重启服务 (4)使用超级管理员登录 (5)创建普通用户 (6)使用普通用户登录对应的数据库 mongodb数据库角色: 1创建 ...

  6. Django【进阶】信号

    -信号 Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者.   问题:如何对所有数据库添加操作进行日志记录? 问题:信 ...

  7. 关于gsl库出现access violation 0X00000005问题的解决方法

    gsl即GNU SCIENCE LIBRARY是一个强大c/c++的数值计算函数库. 在使用这一库出现access violation 0X00000005问题,尝试方法一在project->C ...

  8. [Leetcode Week4]H-Index

    H-Index题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/h-index/description/ Description Given an arr ...

  9. Linux下进程描述(1)—进程控制块【转】

    转自:http://www.cnblogs.com/33debug/p/6705391.html 进程概念介绍 进程是操作系统对运行程序的一种抽象. • 一个正在执行的程序: • 一个正在计算机上执行 ...

  10. Oracle exp

    --导出表exp userid=hr/oracle123 tables=employees direct=y file=/u01/employees.dmp log=/u01/employees.lo ...