一、升級Xcode到Version 10.0 (10A255)後,運行已有項目,報以下錯誤:c++
error: Multiple commands produce '/Users/galahad/Library/Developer/Xcode/DerivedData/yoowei-drnrntneloepunakcqbcdycudqeh/Build/Products/Debug-iphoneos/yoowei.app':xcode
1) Target 'yoowei' has create directory command with output '/Users/galahad/Library/Developer/Xcode/DerivedData/yoowei-drnrntneloepunakcqbcdycudqeh/Build/Products/Debug-iphoneos/yoowei.app'bash
2) That command depends on command in Target 'yoowei': script phase 「[CP] Copy Pods Resources」app
緣由:Xcode 10 默認使用的build system是New build system,與Xcode9不一樣致使。iphone
解決:2種方法ui
1)第一種方法 不修改build system spa
根據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 。
日誌
Cycle path: yooweiExtension → yoowei → yooweiExtensioncode
Cycle details:orm
→ 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後編譯。
二、典型問題
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 )
一、提早在xcode 9中 根據路徑 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib 找到 libstdc++.6.0.9.tbd 備份
二、複製剛纔的libstdc++.6.0.9.tbd 文件,手動添加到 升級後的xcode 10 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib 文件夾中,運行便可。
須要的話,能夠找我要。注意分真機和模擬器環境:
1.真機環境:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
2.模擬器環境:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
20190313遇到一種狀況:編譯報錯 library not found for -l"stdc++.6.0.9"
比較奇怪就是,我已經按照上面將libstdc++.6.0.9.tbd 手動添加過了。可是爲何還會報錯呢?
解決辦法:
打開Build Phases--Link Binary With Libraries,刪除6.0.9依賴 添加Libc++.tdb 便可。
若是依賴c++6.0.9的SDK是第三方SDK等待第三方更新解決。