升级到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

 

 

 

你可能感兴趣的:(ios)