[绍棠] 升级Xcode10和Xcode11问题集

本文详细解析了Xcode10中常见的编译错误,包括依赖循环、缺失库文件及不可靠构建结果等问题,并提供了具体的解决步骤,如修改buildsystem、调整依赖关系和复制缺失库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题1、错误信息如下:

Showing All Messages
:-1: Cycle inside WeexEros; building could produce unreliable results. This usually can be resolved by moving the shell script phase 'h' so that it runs before the build phase that depends on its outputs.
Cycle details:
→ That command depends on command in Target 'WeexEros': script phase “[CP] Copy Pods Resources”
○ That command depends on command in Target 'WeexEros': script phase “[CP] Copy Pods Resources”

错误原因:

Xcode 10 默认使用的build system是New build system,与Xcode9不同。

解决方法:

1)第一种方法 不修改build system
根据error 日志,script phase “[CP] Copy Pods Resources”,而且与output有关,应该是使用了cocoapods导致的,尝试删除该项目target-Copy Pods Resources-Output Files,成功解决问题。选中项目target -> Build phase -> Copy Pods Resources -> Output Files -> 移除${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH} 然后重新编译,OK 。

用这种方式紧接着会有下面的错误:

error: Cycle in dependencies between targets 'yooweiExtension' and 'yoowei'; building could produce unreliable results.
Cycle path: yooweiExtension → yoowei → yooweiExtension
Cycle details:
→ Target 'yooweiExtension': CodeSign /Users/galahad/Library/Developer/Xcode/DerivedData/yoowei-drnrntneloepunakcqbcdycudqeh/Build/Products/Debug-iphoneos/yooweiExtension.appex
○ Target 'yooweiExtension': ProcessProductPackaging /Users/galahad/Library/Developer/Xcode/DerivedData/yoowei-drnrntneloepunakcqbcdycudqeh/Build/Intermediates.noindex/yoowei.build/Debug-iphoneos/yooweiExtension.build/yooweiExtension.appex.xcent
○ Target 'yooweiExtension' has target dependency on Target 'yoowei'
→ Target 'yoowei' has target dependency on Target 'yooweiExtension'
○ That command depends on command in Target 'yooweiExtension': script phase “[CP] Check Pods Manifest.lock”

对应的解决方案:选中项目target -> Build phase -> Target Dependencies 去掉相互的依赖即可

2)第二种方法 修改build system
在Xcode菜单栏 -> File -> Workspace Setting,将build system修改为legacy build system,然后clean后编译。

问题2、 library not found for -lstdc++.6.0.9

ld: library not found for -lstdc++.6.0.9
clang: error: linker command failed with exit code 1 (use -v to see invocation)

错误原因:

Xcode10中已去除这个library。项目中有用到的话,可以从旧版本Xcode中copy一份过来。

解决方法:

旧版本Xcode /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib路径下copy一份libstdc++.6.0.9.tbd,放到Xcode10对应目录下。
另外提供附件下载地址

问题3、Cycle inside xxxxx; build could produce unreliable results

Cycle inside xxxxx; build could produce unreliable results. This can usually be resolved by moving the app extension embedding build phase to the end of the list.
Cycle details:xxxxx

解决方法:

根据提示,Target ->Build Phases下,把Embed APP Extensions移动到列表末尾,问题解决。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值