最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】Xcode9中编译出错:The following binaries use incompatible versions of Swift ChartsRealm.framework

Xcode crifan 4824浏览 0评论

折腾:

【已解决】Xcode9链接出错:ChartsRealm.framework ChartsRealm compiled with older version of Swift language 3.0 than previous files 4.0 file

期间,Xcode9中clean后重新build出错:

error: The following binaries use incompatible versions of Swift:

/Users/crifan/Library/Developer/Xcode/DerivedData/SRT-cfccwgbddwbjoqbfrtcfvclnuykq/Build/Products/Debug-iphonesimulator/SRTDev.app/Frameworks/ChartsRealm.framework/ChartsRealm

/Users/crifan/Library/Developer/Xcode/DerivedData/SRT-cfccwgbddwbjoqbfrtcfvclnuykq/Build/Products/Debug-iphonesimulator/SRTDev.app/SRTDev

所以再去删除掉Derived Data:

再clean后编译,结果:

问题依旧。

所以好像删除掉路径不对?

去打开:

/Users/crifan/Library/Developer/Xcode/DerivedData

从:

找到的Derived Data也是同样的路径:

/Users/crifan/Library/Developer/Xcode/DerivedData

难道是Carthage的build中的ChartsRealm.framework,会自动编译链接到Xcode项目中?

那干脆去删除掉ChartsRealm.framework

然后再去clean后build,结果:

突然发现了:

此处是:

虽然之前已经去掉了

Targets-》General-》Linked Frameworks and Libraries中的ChartsRealm.framework

但是Targets-》Build Phases-》Run Script-》中的:

/usr/local/bin/carthage copy-frameworks

中的:

$(SRCROOT)/Carthage/Build/iOS/ChartsRealm.framework

没有去掉

所以要去掉:

点击减号,删除掉。

且注意此处三个target都删除掉。

所以此处应该是:

确保没有script去copy这个

/Carthage/Build/iOS/ChartsRealm.framework

/Carthage/Build/iOS/ChartsRealm.framework

本身文件也被删除掉了

然后再去clean后build,结果:

终于可以正常编译了(都可以启动app了):

【总结】

此处,虽然之前去掉了

Targets-》General-》Linked Frameworks and Libraries中的ChartsRealm.framework

但是Targets-》Build Phases-》Run Script-》中的:

/usr/local/bin/carthage copy-frameworks

中的:

$(SRCROOT)/Carthage/Build/iOS/ChartsRealm.framework

没有去掉

导致:

每次编译还是会去加载ChartsRealm.framework,然后由于之前:

carthage update –platform iOS –no-use-binaries

(竟然)没有重新编译生成ChartsRealm.framework

(只重新编译生成了Charts.framework)

而此处的

Carthage/Build/iOS/ChartsRealm.framework

是之前(9月1号)编译的(之前旧的版本)

所以此处链接才报错。

而此处,通过搜索代码中好像的确没有使用到ChartsRealm这个库,所以可以安全的删除掉。

所以再去:

Targets-》Build Phases-》Run Script-》中的:

/usr/local/bin/carthage copy-frameworks

中,选中

$(SRCROOT)/Carthage/Build/iOS/ChartsRealm.framework

点击减号➖,删除掉,即可。

注意:此处有3个target,记得都要删除了。

然后重新clean后再去build编译,就不会再去找ChartsRealm.framework,就可以正常编译了。

转载请注明:在路上 » 【已解决】Xcode9中编译出错:The following binaries use incompatible versions of Swift ChartsRealm.framework

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
89 queries in 0.175 seconds, using 22.11MB memory