# Xcode 12新建的xib文件,Xcode10.2.1 打

2020-10-27  本文已影响0人  ted4kra

家里的电脑Xcode更新了最新版本,公司的电脑因为系统原因还停留在Xcode10.2.1

周末在家加班,直接用自己的电脑改项目,新建xib文件等...到了公司发现编译不了

Command CompileXIB failed with a nonzero exit code

搜索无法编译的xib文件,打开直接崩溃,有的提示需要Xcode11及以上。

打开两个版本的xib,对比之后发现有两处不同:

  1. 颜色的引用,这个就是导致崩溃的地方

    <resources>
      <image name="dropdownFlag.png" width="12" height="6.5"/>
      <image name="select" width="21" height="21"/>
      <image name="unselect" width="21" height="21"/>
      <systemColor name="darkTextColor">
        <color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
      </systemColor>
      <systemColor name="darkTextColor">
        <color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
      </systemColor>
      <systemColor name="darkTextColor">
        <color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
      </systemColor>
    </resources>
    

    Xcode11以后,新增了暗黑模式,同时系统内部增加了好多系统颜色,使用系统颜色可以自动适配暗黑模式。

    在xib内部,就体现在 把颜色放进了<resource></resource>里面,文件中引用从

    <state key="normal" title="--请选择--">
     <color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
    </state>
    

    变成了

    <state key="normal" title="--请选择--">
     <color key="titleColor" systemColor="darkTextColor"/>
    </state>
    

    所以解决方案很显然是将引用的地方替换掉,同时将<resource/>里面的<systemColor name="xxx">..</systemColor>系统颜色标签删除掉。

  2. 第二个就是提示Xcode11以上的问题,这个很简单,将里面的

    <capability name="System colors in document resources" minToolsVersion="11.0"/>
    

    删除掉就行了

由于Xcode中xml没有格式化什么的,删除的时候自己小心点

上一篇下一篇

猜你喜欢

热点阅读