你知道如何为iOS工程改名吗?
我们在iOS开发中,难免会遇到项目做到一半要改名字的情况。如果项目名差的太大,工程名看起来总是不舒服的,有良心的开发者可能就会想着为工程改个贴切的名字,那么你就为用到本文记录的内容。
如果我们开发的两个项目相差不大,只有部分主题、布局有更改,那么我们就可以拷贝之前已经完成的项目,改改名字,再对部分界面和代码稍稍修改就可以啦。
如何修改工程名呢?
下面我就拿一个中等大小的项目来实际操作一下,并记录整个要修改的地方。
该项目的结构如下:

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

接下来,就要开始修改项目名称了。假设我要把doutu改为shopping。
提醒:
* 在改工程名之前,要注意三件事:一定要备份,一定要备份,一定要备份。
* 在开始第一步之前,请先执行第八步。
1.修改project名称
选中project 单击project名字 或者 选中project+回车。
修改project的名称之后,回车会有提示:
这里点击Rename,将project中部分doutu改为shopping。
修改之后,哪些地方有明显变化呢?

2.修改文件夹名称
选中文件夹 单击文件夹名字 或者 选中文件夹 回车。

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

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

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

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

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

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

接下来是将doutu替换为shopping。

点击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中的值都删掉,然后把第三方删除,再重新添加。

这里点击Remove References删除,然后再把Vendor文件夹添加进工程即可。
5.修改pch文件路径
如果你的工程里添加了pch文件,因为修改了文件夹,project名字,所以pch文件夹路径也要修改。修改前编译运行,会报如下错误:

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

上面把doutu/shopping-Prefix.pch修改为shopping/shopping-Prefix.pch即可。
6.修改info.plist文件路径
此时再次编译运行,依然会有一个错误,错误如下:

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

上面将doutu/Info.plist修改为shopping/Info.plist即可。
到这里,工程应该已经可以正常运行了。

但是,如果你想追求完美,依然还有两个地方需要修改。
7.修改scheme 值
要修改的其实是这个地方的显示名称:

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

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

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

8.修改大文件夹的名称
其实这一步,应该在拷贝完工程后,直接修改的。所以这一步更应该放在第一步做。

到这里,就真的大功告成啦。Have Fun!
你知道如何为iOS工程改名吗?的更多相关文章
- GJM : Unity3D HIAR -【 快速入门 】 六、导出 iOS 工程
导出 iOS 工程 在开始之前,请务必先保存您的工程.由于 Unity 无法直接生成 ipa 文件,您需要先导出 iOS 工程文件,然后通过 Xcode 编译生成. Step 1. 选择平台 在 Un ...
- 给iOS工程增加Daily Build
给iOS工程增加Daily Build 前言 Daily Build 是一件非常有意义的事情,也是敏捷开发中关于 "持续集成" 的一个实践.Daily Build 对于开发来说有 ...
- iOS 工程中文件变成红色是什么情况
iOS 工程中文件变成红色是原有的文件路径改变了,系统找不到了.
- ios外包公司—北京动点软件分享:IOS工程自动打包并发布脚本实现
前言 IOS的开发过程中,当需要给测试人员发布测试包的时候,直接使用xcode来做的效率是非常低下的.尤其是当有一点小改动需要重新出包时,那简直是个折磨的人的工作.通过一番研究后,遂决定写一系列脚本, ...
- ios 工程图片清理shell
#!/bin/shecho "随意删除@2x图片可能会引起错误 因为ios工程会更加前缀和分辨率自己找到@2x的图片 所以删除@2x图片时要慎重"read -n1 -p &quo ...
- iOS 工程自动化 - 思路整理
4 月份参加 2017@Swift 大会的时候有幸听到了 @zesming 大佬关于美团组件化的 Topic,有一张图印象特别深刻. 来自 @zesming 大佬 后来跟 @zesming 大佬沟通怎 ...
- bitbucket工程改名导致 repository does not exist. fatal: Could not read from remote repository.
在bitbucket上把工程改名了,就忘了. 结果同步时报错. 先在本地查看一下 git remote -v 果然是工程的老名字 origin git@bitbucket.org:XXX/oldnam ...
- 如何将 iOS 工程打包速度提升十倍以上
如何将 iOS 工程打包速度提升十倍以上 过慢的编译速度有非常明显的副作用.一方面,程序员在等待打包的过程中可能会分心,比如刷刷朋友圈,看条新闻等等.这种认知上下文的切换会带来很多隐形的时间浪费. ...
- iOS 工程自动化 - OCLint
前言 最近一直在做 iOS 工程自动化方向的事情,所以把自己研究和实践的内容进行记录并分享,希望能给大家一些帮助. 为什么要使用 OCLint 做为一个静态代码分析工具,我们引入 OCLint 的目的 ...
随机推荐
- Leetcode 804. Unique Morse Code Words 莫尔斯电码重复问题
参考:https://blog.csdn.net/yuweiming70/article/details/79684433 题目描述: International Morse Code defines ...
- [Codeforces 505C]Mr. Kitayuta, the Treasure Hunter
Description The Shuseki Islands are an archipelago of 30001 small islands in the Yutampo Sea. The is ...
- 51nod 1673 树有几多愁
lyk有一棵树,它想给这棵树重标号. 重标号后,这棵树的所有叶子节点的值为它到根的路径上的编号最小的点的编号. 这棵树的烦恼值为所有叶子节点的值的乘积. lyk想让这棵树的烦恼值最大,你只需输出最大烦 ...
- BZOJ4423 Bytehattan
Description 比特哈顿镇有n*n个格点,形成了一个网格图.一开始整张图是完整的. 有k次操作,每次会删掉图中的一条边(u,v),你需要回答在删除这条边之后u和v是否仍然连通. Input 第 ...
- 李耀于NOIP2010集训出的题 Dvalue
此题模型比较明显,求无向图的一棵生成树,使得最大边减去最小边的值最小,这是最小生成树的一个变式 设计出此题的算法需要利用Kruskal贪心的性质,首先枚举一条最小边,接着求原图的一棵最小生成树,根据k ...
- ●Splay的一些题
●个人感觉: 代码长: 函数多: (很套路): (很强的Splay,无愧于“区间王”) ●NOI2005维修数列 一个可以当模板学习的题,包含了众多操作(函数): 区间插入,删除,更新,翻转,询问信息 ...
- 51nod 平均数(马拉松14)
平均数 alpq654321 (命题人) 基准时间限制:4 秒 空间限制:131072 KB 分值: 80 LYK有一个长度为n的序列a. 他最近在研究平均数. 他甚至想知道所有区间的平均数,但是 ...
- hdu 1255 覆盖的面积(求覆盖至少两次以上的面积)
了校赛,还有什么途径可以申请加入ACM校队? 覆盖的面积 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- LCT模板(BZOJ2631)
用LCT实现路径加,路径乘,断开及加上一条边(保证是树),查询路径和. #include <cstdio> #include <algorithm> #define l(x) ...
- 凸包(BZOJ1069)
顶点一定在凸包上,我们枚举对角线,观察到固定一个点后,随着另一个点的增加,剩下两个点的最优位置一定是单调的,于是就得到了一个优秀的O(n^2)做法. #include <cstdio> # ...