Xcode10升级完需要注意的

1、升级Xcode到Version 10.1(10A255)后,运行已有项目,报如下错误:

error: Multiple commands produce '/Users/galahad/Library/Developer/Xcode/DerivedData/yoowei-drnrntneloepunakcqbcdycudqeh/Build/Products/Debug-iphoneos/yoowei.app':

1) Target 'yoowei' has create directory command with output '/Users/galahad/Library/Developer/Xcode/DerivedData/yoowei-drnrntneloepunakcqbcdycudqeh/Build/Products/Debug-iphoneos/yoowei.app'

2) That command depends on command in Target 'yoowei': script phase “[CP] Copy Pods Resources”


原因:Xcode 10 默认使用的build system是New build system,与Xcode9不同导致。

解决:2种方法

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

Xcode10升级完需要注意的_第1张图片

2、典型问题

ld: library not found for -lstdc++.6.0.9

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

解决方案:(我一般升级xcode 之前都会将lib 给备份一份。具体路径是:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib )

1、提前在xcode 9中 根据路径   /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib 找到 libstdc++.6.0.9.tbd  备份

2、复制刚才的libstdc++.6.0.9.tbd 文件,手动添加到 升级后的xcode 10  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib 文件夹中,运行即可。

来源:http://www.cnblogs.com/richard-youth/p/9777023.html

你可能感兴趣的:(Xcode10升级完需要注意的)