本篇文章主要针对已经创建好的项目、完整项目、开发了部分的项目,需要修改项目的 名称和前缀 此类需求(包含cocoapods)。
首先看下我的项目结构,不管多复杂还是简单,都可以修改,我们慢慢来!
一、修改项目名称
- Xcode打开项目修改名称
截屏2024-10-29 13.54.19.png
把Name:OldAPP修改成为我们需要的NewAPP
截屏2024-10-29 13.55.09.png
- Rename完了点继续
修改后的结果,只有红色框内的名字变了
截屏2024-10-29 13.56.01.png
- 退出Xcode关闭项目,修改剩下的项目名称
找到 NewApp.xcodeproj -> ShowPackageContent -> 打开 project.pbxproj 全局查找 OldApp 并全部替换为 NewApp 保存后关闭。
截屏2024-10-29 13.57.28.png
截屏2024-10-29 13.58.10.png
- 最后修改对应的文件夹名称为SDApp
WeChat58f0aee36c585b5224d5b1b31ee488c3.jpg
- .entitlements文件名字也需要修改
image.png
如果包含Tests和UITests文件的,需要打开项目到.m文件中修改,全局查找全部替换。
注:(其实这两个文件可以在创建项目的时候就删除掉,作用不大没有任何影响)
image.png
-到此为止如有没有用到cocoapods的同学,恭喜你现在已经修改完了😄,可以直接跳到第二部分查看如何修改类名前缀!💪
关联cocoapods
- 删掉 SDApp.xcworkspace 和 Podfile.lock 并修改 Podfile 里制定的路径 修改好后执行 pod install
workspace 'NewApp'
project 'NewApp.xcodeproj'
image.png
结果如下
image.png
image.png
到目前修改项目名称已经全部搞定,确定运行没问题,good!+⛽️
二、修改类名前缀
- 需要写一个python脚本。
最简洁方便的方法直接创建一个.text文本,把下面的代码复制进去,然后把后缀改成.py即可。
#!/usr/bin/env python
import os
for dirpath, _, filenames in os.walk('.'):
for filename in filenames:
if filename.startswith('OldPrefix'):
oldFile = os.path.join(dirpath, filename)
newFile = os.path.join(dirpath, filename.replace('OldPrefix', 'NewPrefix', 2))
print(newFile)
inFile = open(oldFile)
outFile = open(newFile, 'w')
replacements = {'OldPrefix':'NewPrefix'}
for line in inFile:
for src, target in replacements.items():
line = line.replace(src, target)
outFile.write(line)
inFile.close()
outFile.close()
os.remove(oldFile)
filename.replace
是把OldPrefix
替换成NewPrefix
最后把这个 app.py 放到 SDApp.xcodeproj 同级目录下,并执行
python3 app.py
根据python版本来定 这里用的是python3image.png
执行结果
截屏2024-10-29 14.10.51.png
可以看到已经把项目里所有含有OldPrefix头的类替换成了JZKXxxxx。
到目前为止,我们任务马上就要完成,只需做最后一步小小的操作:打卡 xcode 将红色部分文件删除,并将改名后的文件导入工程,'Add Files to " "'。
删除红色文件.png
添加修改后的文件.png
三、运行xcworkspace文件没问题
最后一起来哈啤酒!
👏👏👏🍺🍺