DerivedData/xxx-fxhqtzymbwegttddoznsqpakmlvp/Build/Products/Debug-iphonesimulator/xxx.app/xxx

本文详细介绍了在使用Xcode进行iOS开发时遇到的链接错误ld: file not found及clang error的具体原因与两种解决方法。一是通过编辑工程方案移除无效链接,二是确保产品名称与可执行文件一致。

运行程序报错

ld: file not found: ~/Library/Developer/Xcode/DerivedData/xxx-fxhqtzymbwegttddoznsqpakmlvp/Build/Products/Debug-iphonesimulator/xxx.app/xxx

clang: error: linker command failed with exit code 1 (use -v to see invocation)

 

clean 项目后  删除DerivedData后 重启Xcode不起作用

 

2种解决办法

1)左击工程文件:

选择Edit Scheme

把红色圈住的去掉就ok了

2)Proj->BuildingSetting-搜应用名 ->Product Name更改为和 Executable file一致(proj->info->Executable file)

 

转载于:https://www.cnblogs.com/BinZone/p/4443858.html

### Xcode 构建错误 WriteAuxiliaryFile 和 Duplicate Tasks 的解决方案 在 Unity 项目中,Xcode 构建过程中出现 `WriteAuxiliaryFile` 错误以及 `Duplicate Tasks` 问题通常是由于脚本阶段的重复定义或权限问题引起的。以下是详细的解决方法: #### 检查并修正权限问题 构建错误可能与脚本文件的执行权限有关。如果脚本文件没有正确的执行权限,可能会导致 `Permission denied` 错误[^1]。可以通过以下命令修复权限问题: ```bash chmod +x /Volumes/xxx/xxx/xxx/XcodeProj/MapFileParser.sh ``` 确保所有相关脚本文件都具有适当的执行权限。 #### 修改 Build Phases 中的 Run Script 检查 Xcode 项目的 **Build Phases** 标签页,确认是否存在多个重复的 `Run Script` 阶段。如果有重复的任务定义,则需要删除多余的脚本任务以避免冲突[^2]。 ```bash # 示例:常见的 Unity 脚本内容 ${PROJECT_DIR}/UnityFramework/Tools/postbuild.sh "${TARGET_BUILD_DIR}" "${FRAMEWORKS_FOLDER_PATH}" ``` 确保每个 `Run Script` 阶段的脚本内容唯一且必要。如果存在冗余的脚本,可以尝试合并它们的功能。 #### 清理 Derived Data 并重新生成项目 有时,Xcode 缓存可能导致构建过程中的任务重复。可以通过以下步骤清理和重新生成项目: -Xcode 中选择 **Product > Clean Build Folder**。 - 删除 Derived Data 文件夹(路径为 `~/Library/Developer/Xcode/DerivedData`)。 - 返回 Unity,重新导出 Xcode 项目[^3]。 #### 修改 Code Signing 设置 如果项目中存在签名冲突,也可能导致构建失败。例如,自动签名与手动签名之间的冲突可能引发问题。可以在 **Signing & Capabilities** 编辑器中将代码签名身份值设置为 `Apple Development`,或者切换到手动签名模式[^4]。 #### 检查 pbxproj 文件 `.pbxproj` 文件记录了 Xcode 工程的所有设置。打开 `Unity-iPhone.xcodeproj` 下的 `project.pbxproj` 文件,查找是否有重复的任务定义。如果有重复条目,可以手动删除多余的定义。 ```bash find . -name "*.pbxproj" -exec sed -i '' '/Script-C62A2A42F32E085EF849CF0B.sh/d' {} \; ``` 此命令会搜索并删除 `.pbxproj` 文件中与特定脚本相关的重复条目。 --- ### 示例代码片段 以下是 Unity 导出 Xcode 项目后常见的 `Run Script` 内容示例: ```bash if [ "${CONFIGURATION}" == "Release" ]; then echo "Skipping Run Script for Release Configuration" else ${PROJECT_DIR}/UnityFramework/Tools/postbuild.sh "${TARGET_BUILD_DIR}" "${FRAMEWORKS_FOLDER_PATH}" fi ``` 确保该脚本仅在特定条件下运行,以减少重复执行的可能性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值