Xcode构建时自动删除项目中Tools/mogenerator文件如何解决
解决方案步骤
- 首先对比你与团队其他成员的Mogenerator运行脚本构建配置,重点核对两项:
- 「Input Files」「Output Files」列表:如果误将
Tools/mogenerator添加到了输出文件列表,Xcode新构建系统会默认在构建后清理冲突的输入/输出文件,直接删除该二进制 - 「Based on dependency analysis」「Run script only when installing」两个勾选框的状态,确保与其他成员配置一致
- 「Input Files」「Output Files」列表:如果误将
- 在脚本开头添加
set -x开启执行日志,构建后在Xcode的构建日志中筛选该脚本的执行记录,可直接定位到触发文件删除的具体命令 - 手动在终端执行脚本中的mogenerator命令,替换掉占位符路径后直接运行:
如果手动执行也会删除Tools/mogenerator -m 你的数据模型路径.xcdatamodeld --machine-dir 你的生成代码路径/Model/Generated --human-dir 你的生成代码路径/Model --swift --template-var arc=true --template-var scalarsWhenNonOptional=trueTools/mogenerator文件,说明你本地的mogenerator二进制存在损坏,可以直接从团队其他成员处拷贝一份正常的二进制替换即可 - 尝试给
Tools/mogenerator添加只读权限,锁定文件避免被修改/删除:
如果构建时出现权限报错,可直接从报错栈中找到执行删除操作的进程/步骤chmod a-w Tools/mogenerator - 排查本地是否有开启iCloud、Dropbox等实时同步工具同步项目目录,这类工具的文件锁逻辑可能会被Xcode的构建系统识别为待清理的无效文件
- 检查Xcode当前使用的构建系统:打开「File > Project Settings > Build System」,确保与团队其他成员使用的版本一致,避免新旧构建系统的逻辑差异导致的异常清理
内容的提问来源于stack exchange,提问作者Jonathan
相关产品推荐
相关产品推荐

