升级Xcode12.1后,用xcodebuild编译报错?

1,230 阅读1分钟

1、编译模拟器时,应该去掉不需要的架构,增加EXCLUDED_ARCHS='i386 arm64'

2、编译Cocoapods的Pods.xcodeproj报错,修改Podfile,避免Cocoapods修改SYMROOT导致编译报错

# 不修改symroot
class Pod::Project
  def symroot=(symroot)
  end
end

3、指定SYMROOT后编译就报错,

xcodebuild编译一般会指定SYMROOT,好获取编译产物,方便操作,但Xcode12.1如果通过xcodebuild 自定义了SYMROOT,编译就报错。

Workaround:不指定SYMROOT,而是从Build Setting里取出来用。

Ruby 脚本:

buildsetting = `xcodebuild -showBuildSettings 2>/dev/null`
buildsetting_list = buildsetting.split("\n")
symroot = ''
objroot = ''

buildsetting_list.each do |variable|
  variable_strip = variable.strip
  symroot = variable_strip if variable_strip.start_with?('SYMROOT')
  objroot = variable_strip if variable_strip.start_with?('OBJROOT')
end
puts symroot.tr(" ", "").split('=').last
puts objroot.tr(" ", "").split('=').last