xcode 之项目重命名讲解
2017-03-02 本文已影响93人
郭苒
前言
最近在重构项目,在这个过程中比较扯的就是项目名称的修改问题了,挺费事儿,虽然网上也有相关教程,但是我们的项目较大,网上的教程还不能完全解决我的问题,于是乎写下这篇文章,希望能帮助一些朋友,那么就开始吧,我拿我们的项目实战演示一下~
1 xcode打开项目,修改项目名称
话不多说,我也不怕项目被公司的项目被看,哈哈,直接上图

那么就直接改吧,双击项目名称或者鼠标移到项目名称上按enter键~
如果你的项目也比较大的话,那么你要得等上几秒钟才能跳出以下界面,这也是xcode为我们提供的,方便我们修改项目名称的小功能

你看的没有错,就是
Rename
键,大胆的点下去然后点击
OK
此时我们的项目成了这个鬼样子

此时我们要做的是退出xcode,去修改们的工程文件夹名称

把这些名字都更改为新名称

原谅我对你还是不放心,看看我改的,不要改错了~
再次打开xcode吧,此时我们会看到这样的界面,即便不是这个界面也无所谓,相信也能帮你解决问题(也许我话说过头了,不过可以一试),看现在的界面,是这个鬼样子

如果你注意的话,左边的文件夹名称没有改,文件夹下的文件都成了一片片的红色,mygod~这是要我今晚不眠吗?不急,亲,我们先来分析一下出现这种问题的原因:
可能你在平时创建文件或者文件夹的时候习惯鼠标右击就直接在xcode左边的菜单栏里面创建了,这样就可能出现文件夹的物理路径和逻辑路径的不一致,最后你给别人拷代码或者直接上传代码到仓库的时候出现上传的代码不全,别人拉代码后就是各种报错,有这样的经历吧?😝,我曾经也这样傻逼过,最后很浪费时间,惨痛的经历的~~
正确的做法其实是点击左边项目列表区,右击鼠标——>show In Finder 去对应的文件目录下创建文件夹,然后再拖进项目。经过一番分析,我们推测出左边的一片一片的红色是因为文件路径不对,是的,忘记了吗?刚才我们退出xcode后做了什么?对,我们修改了文件夹的名称。那么修改文件路径吧,go go go ~~~~

去加载当前正确的路径,加载完毕后,我们发现所有的红色消失,这里的我就不展示图了,呼呼 ~~~
如果你观察力足够强的话我们还能看到一处我们的xcode Target ——>General——>Identity处(如上图6)让我们选择应用本身的配置信息(即Info.plist),此时我们选择

对应的Info.plist添加即可(不过我选了之后好像也没啥用~那你可以先不管它,继续往下走,悄悄告诉你,重启xcode再打开也许就好了呢,不信你试试,现在关键任务不是这里,继续进行下面的)。

接下来我们要让scheme显示正常,跟着我操作,

聪明的你看到这张图后肯定知道怎么做了

不错我们的项目好像现在基本正常了,但是不要高兴的太早,这才解决了,编译或者运行,就会发现,错误依然还是倔强的存在,如图:

那么找吧,说这个
woaoo-basketball.entitlements
找不到,拷贝在左上角的导航区的搜索区搜索,看到了吧,问题并不是那么难找

将路径改成
woaoo-league/woaoo-basketball.entitlements
就行了,再编译,继续报错

方法如上:搜索
PrefixHeader.pch
文件
看到了,思路都一样,改掉它吧,继续编译,继续报错,让我们看看是什么错误,

我想这个错误我们一定再熟悉不过了,还是路径问题,找吧,找到拖到项目中,这里我就不再列详细的步骤了吧~~~~
还有木有天理啊,怎么还是报错呢,有点心力憔悴了,别慌,也许这就结束了呢,也说不定,还得继续搞~先看看下面的报错再说

从报错上咱推测一下吧,这是第三方啊,难道是文件没拖进去?看看,拖进去了啊,那么然后呢,拖进去了找不到文件,那不是路径问题那是啥?继续搜,发现拷贝全名
BaiduMapAPI_Location
搜索不到啥有用的信息,那么就拷贝前缀Baidu
搜,在搜索到的内容中终于看到似曾相识的信息,没错

还是路径的问题,改吧~~~
天啊,又遇到问题了,这是什么个东东啊,好像不太懂,只能硬着头皮搜索

这次我直接搜索
Wallet
,不要问我为什么,我只是凭直觉,搜出如下内容

发现很失望,路径没问题,那么直接在Bulding setting中搜原来项目的名字吧,把所有涉及到的路径都改过来,直觉告诉我应该这么做,那么搜索吧,对于我来说应该搜索
woaoo-basketball
,不搜不要紧,一搜原来这么多需要改的啊,那赶紧改吧
改完后在编译,终于期待已久的
Build succeeded
出现了,好像从来都没有没有这么爱这个Build succeeded
的了,终于可以吐一口气了,稍等(别怕,基本没问题了),记得刚开始我说过我们的scheme的名字还没改吗,这个就好修改了,那么直接贴图吧,不多说了

继续

选择Duplicate
再继续

改成我们项目的新名称
然后close即可
这时你可以看到

在我们的项目中有了两份,一个是原来项目的名称,一个是新名称,如果你想删掉原来的那就删掉,不想删那就留着,反正现在完整的项目重命名算是搞一段落了,我是边操作作边写文章啊,生怕遗漏了什么,累死我了,希望能帮助一些朋友,就到此吧,该干正经活了~~~~