项目开发中难免遇到修改工程文件名的操作,修改过程中总会各种遗漏,特分享在此。
因为在开发SDK的前期没有确定好工程名,后期发 beta 版本的时候需要整体修改工程名,所以总结下经验:
首先:先在git建一个分支便于丢弃和回滚,每一个步骤做一次保存操作。
-
第一步: 修改工程名
- 左侧"Project navigator"点击你想要修改的工程.
- 右侧"File inspector",找到"Identity and Type",名字栏修改成 你想要的新名字.
- 在弹出的下拉菜单中选择"Rename".
-
第二步: 修改模块名
- 在顶端栏,靠近"Stop"按钮,点击展开 Scheme 列表, 选择 "Manage schemes"
- 单击Scheme名进行修改
-
第三步: 修改文件夹名
- 关闭 Xcode.
- 打开 terminal, cd 到项目目录,执行
git mv oldname newname
, 这样能识别是移动,而不会重新删除和新建. - 重新打开 Xcode, 会收到错误警告: "The folder OLD does not exist"
- 在左侧项目栏,点击最顶层文件夹名
- 在右侧 "Identity and type" 下你会看到 "Name"入口,修改成新的名字
- 再下面会看到 "Location", 选择为新的文件夹名.
-
第四步: 修改 plist
- 左侧项目栏,点击项目,中间主面板选择 "Build Settings"
- 搜索 "plist"
- 在 "Packaging" 下,你将会看到
Info.plist
, 和Product bundle identifier
- 修改
Info.plist
名 - 同样修改
Product bundle identifier
名
第五步: 为tests重复第三步(如果你有单元测试和UITest的话)
第六步: 为 core data 重复第三步(如果你有的话)
-
补充:(如果需要的话)
- 修改 Targets: 在中间主面板左侧栏会看到TARGETS,如果没有被修改的话主动点击修改
- 修改文件名: 单击选择需要修改的文件,.m中选择类名,单击右键, "Refactor", "Rename", 修改成想要的新名字,如果注释的类名没有自动自改,则点击即可,回车或 "Rename"按钮
- 如果是OC和Swift混编,修改后 header-bridger 文件索引会出问题,如果引用找不到,定是桥接文件所因为问题。
以上,按步骤包含项目所有需要修改的元素,每次修改后编译通过保存便于回滚和丢弃。如果有更好的方法欢迎大家提出。
Reference:
1.How do I completely rename an Xcode project (i.e. inclusive of folders)?
2.(iOS) Rename your Xcode Project
3.iOS changing target name