Swift错误集

错误1: 打包上架二进制文件中,包含了不兼容的数据

The following binaries use incompatible versions of Swift:*******(此处为相关文件的地址)

最近一年Swift更新的频率颇高,到目前为止,Xcode已经到了9.X版本,这次更新遇到一个小问题: 同一个项目,我使用Xcode8.3.3打开是没有问题的,但是使用Xcode9.0打开之后会报错:

The following binaries use incompatible versions of Swift:*******(此处为相关文件的地址)

不管是重新启动Xcode或者Clear都没用。然后进行了一番研究。记录于此。

问题产生原因:

这个问题产生的原因是在更新Xcode之前,Xcode中有预留的DriveData文件没有被清空(这个文件相当于与缓存文件,可以增加每次编译的速度),DriveData文件中会根据每个项目单独建立一个与之对应的'Drive'。 假设更新Xcode之前我的Xcode版本是8.3.3,那么这个'Drive'的版本也就是8.3.3,而后,当我使用更新后的Xcode9运行项目的时候,就会提示二进制文件包含了不兼容Swift版本的数据。

解决办法:

对症下药,进入到/Users/XXXX/Library/Developer/Xcode/DerivedData/ 直接删除对应的'Drive'文件然后重新编译即可。

错误2: 上传ipa文件时候,提示构建的版本无效。

2018-3-15

如图:


错误信息

并接到苹果发出的邮件:

Dear Developer,
We identified one or more issues with a recent delivery for your app, "GPRS-Alarm". Please correct the following issues, then upload again.
Unexpected CFBundleExecutable Key - The bundle at '/Payload/GSMGP20GPRS.app/Base.lproj/Info.plist' does not contain a bundle executable. If this bundle intentionally does not contain an executable, consider removing the CFBundleExecutable key from its Info.plist and using a CFBundlePackageType of BNDL. If this bundle is part of a third-party framework, consider contacting the developer of the framework for an update to address this issue.

问题产生原因:

我遇上的这个错误的具体的原因是我们的 info.plist 文件中没有包含可执行的文件。
根据这个提示,删除了 Executable file 文件之后,发现不能编译。

解决办法:

最后我发现,因为项目中包含的info.plist文件的路径被修改过,直接进入到了整个项目的下级文件中。
手动将 info.plist 拖回,并在Xcode 的设置中,将 info.plist 的路径修改为心的路径,最后 clear 运行,再打包。

拓展:

除了这个原因之外,在搜索解决之道的过程中,看到很多类似的错误,大部分都是集中在第三方的 info.plist 中。这个一般根据提示删除对应的第三框架的 info.plist 中的 Executable file 即可。

错误3:Xcode 10中提示无法找到 libstdc++.6.0.9 静态库。

20180918212007937.png
根本原因:

Xcode10 开始,已经不在支持libstdc++.6.0.9,也即是默认的库类中不在拥有这个库了。 而是转而支持libc++.daily。 我们以前的项目如果有依赖 libstdc++.6.0.9,就会报这个错。

解决办法

在上找到一位仁兄直接粗暴的办法。

libstdc++.6.0.9的文件下载地址:
链接: [https://pan.baidu.com/s/14ArFzkBQzuXmwLw1DEBHpQ](https://pan.baidu.com/s/14ArFzkBQzuXmwLw1DEBHpQ) 提取码: w99r

下载之后添加到
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
直接拖进去就可以了

作者:Smallwolf_JS
链接:https://www.jianshu.com/p/3b9731b84e87
來源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(Swift错误集)