今天来看一下iOS开发中如何修改包名,如果是单纯的修改包名还是比较简单的,但是如果和RN接起来,机会有超多的坑。
假设我们现在已经有一个名为AppFirstName的应用,我们需要将这个名字改为AppSecondName。
修改React native代码
修改RN的代码比较简单,只需要修改两个文件:
- package.json
- index.js
package.json
在package.json中只需要把name修改成新的包名就可以了
"name": "AppFirstName",
=> "name": "AppSecondName",

index.js
在index.js中也是只将App的入口更改为新的包名
|
|
改成
|
|

iOS部分
iOS部分比较复杂,主要分为这么几个部分:
- 1.Xcode项目部分;
- 2.Xcode中test部分;
- 3.Xcode中所有文件名;
- 4.Xcode中所有相关代码;
- 5.修改scheme;
- 6.finder中文件夹名称;
- 7.cocospod相关;
Xcode项目部分
首先从Xcode项目开始,使用Xcode打开项目,点击左上角项目名称,按下回车就可以修改项目名称了。

修改好新的名称之后回车,就可以看到这个界面,点击rename就可以了。

这时候会发现应用大部分东西已经发生变化了,而且这个时候项目是一定没办法跑起来的,也不用跑,接着往下改。

Xcode中test部分
接下来把xxTests.m
中的代码修改一下。

Xcode中文件名
这步就直接把Xcode中所能看到的所有旧的相关文件名都替换成新的项目包名就可以了。也可以直接在下边搜索关键字并替换,这里注意,Pods下的部分先不要修改。

Xcode中相关代码
接下来再应用中全局搜索旧包名的关键字,并替换成新的包名,同上,这一步Pods部分先不要动,xcodeproj中的也可以先不动。

修改scheme
点击Product => Scheme => Manage Scheme ,这里你可以直接把原来的名字替换成新的名字。哦对了,这个地方不要双击,单击要改的地方按下回车就可以修改了。这里的-Pods也是需要修改的。

修改finder中的文件
这时候关闭Xcode,在finder中修改所有的旧包名,改成新的包名。
cocospod相关
这部分有两种方式可以使用。
重新安装pods
一种就是把原来的cocospod相关的东西全部删除,需要删除的文件有:
- Pods 文件夹
- Podfile.lock 文件
- .xcworkspace 文件
然后重新pod init,记得不要删掉Podfile文件,不然就没办法安装了。
修改名称
再或者修改.xcworkspace文件的文件名为新的包名,并右键.xcodeproj文件,点击Show Package Contents,然后使用文本编辑器打开project.pbxproj。寻找所有的旧包名并替换。
收尾工作
这时候打开Xcode,别急着跑,先看看有没有文件是爆红的,如果有的话,点击右侧小文件夹,重新引入一下文件路径。

如果之前你是使用修改名称的方式修改cocospod,记得我们之前说的不要修改pods下的文件名和代码么?这时候就可以开始修改了。
记得先修改一下Pods下target的名称。

修改完直到应用中再也搜索不到旧的包名,这时候cmd+r一下试试吧。
最后
修改包名还是有很多坑的,有的时候有一点东西改的不对,就会影响最后的效果,修改的时候还是要多耐心一点。