升级Xcode10问题集

问题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后编译。


xcode示意图

问题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移动到列表末尾,问题解决。

推荐阅读更多精彩内容