天天看點

更新到xcode10.1導緻的 Multiple commands produce ......script phase “[CP] Copy Pods Resources” 問題

1.出現問題

更新到xcode10.1,編譯後報如下錯誤:

Multiple commands produce '/Users/xxx/Library/Developer/Xcode/DerivedData/xxx-fqevocrykxtaoohbmdbqigdxpkms/Build/Products/Debug-iphoneos/xxx.app':
1) Target 'xxx' has create directory command with output '/Users/xxx/Library/Developer/Xcode/DerivedData/xxx-fqevocrykxtaoohbmdbqigdxpkms/Build/Products/Debug-iphoneos/xxx.app'
2) That command depends on command in Target 'xxx': script phase “[CP] Copy Pods Resources”
           

這是因為xcode10.1是用 New Build System 編譯,與舊版xcode項目編譯的規則不一定相容,是以會出現上述錯誤,本質上是cocoapods版本相容問題。

2.新舊對比

此次要做的是,更新,更新,把舊的更新,舊新前後對比如下(每個機器環境不同可能差别,反正兩個字:更新):

舊:

xcode版本:9.2 ,使用Legacy Build System編譯;

cocoapods版本: 1.3.1

gem版本:2.5.2.3
           

新:

xcode版本:10.1 ,使用New Build System編譯;

cocoapods版本: 1.6.1

gem版本:2.7.7
           

3.解決方案(正常情況下)

先關閉xcode

1)檢視目前cocoapods版本

pod --version
1.3.1
           

2)更新cocoapods版本到最新

pod setup
sudo gem install cocoapods //或使用sudo gem install -n /usr/local/bin cocoapods,我就是使用這個才可以
           

3)進行app項目所在目錄,對原來的pod資料進行解體和清理及重新pod

// 1.安裝cocoapods插件
sudo gem install cocoapods-deintegrate     // 解體
sudo gem install cocoapods-clean           // 清理

// 2.清理
pod deintegrate
pod clean

// 3.重新install
pod install  
           

每一個有cocoapods管理的,都要使用3)步驟做處理,才能解決問題

4.更新出現的問題和其他相關

源的問題:

ERROR:  Could not find a valid gem 'cocapods' (>= 0), here is why:
          Unable to download data from https://rubygems-china.oss.aliyuncs.com - bad response Forbidden 403 (https://rubygems-china.oss.aliyuncs.com/specs.4.8.gz)
           

sudo gem install cocapods 安裝時,報的錯,要換源,可通路:https://gems.ruby-china.com/

裡面有詳細的操作,這裡也給出相關指令:

gem sources -l //檢視源的版本
gem sources --remove https://rubygems-china.oss.aliyuncs.com //移除源
sudo gem sources -a https://gems.ruby-china.com/  //添加源

           

gem要保持最新版本

gem -v  //檢視版本
gem update --system //更新,也可以用sudo gem update --system ,我就是用這個指令
           

5.其他方案

還有個臨時解決方案,就是編譯前,修改New Build System 為 Legacy Build System,也能解決問題;

操作如下:

Xcode ---> File ---> Workspace Settings ---> Build System:修改New Build System 為 Legacy Build System

這是臨時方案,測試過可行,但更新cocoapods才是徹底的解決方案。

參考連結:

https://www.jianshu.com/p/beb29d39c790

https://gems.ruby-china.com