将RealmSwift转换为Xcode9 / Swift 4

  environmentXcode:9.0 GM(9A235)
斯威夫特:4.0
迦太基:0.25.0(于2017/9/12尝试) 

在现有的xcode项目中,如果将swift版本转换为4,可能会看到此错误。

通常我必须能够通过迦太基使用它,但是现在我不能了。
看来问题在于RealmSwift并未针对Swift 4采取措施。

因此,让我分享我如何解决它。

https://stackoverflow.com/questions/44640852/how-can-i-use-realm-with-swift-4
https://ja.stackoverflow.com/questions/28951/realm%E3%81%8Cbuild-%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84(日语)

在此之前,请确认xcodebuild版本。

  $ sudo xcode-select -s /Applications/Xcode9.app
 $ xcodebuild-版本
 Xcode 9.0
内部版本9A235 
  1. 将Swift版本更改为4

选择TARGETS,然后移至Build Settings> Swift Language Version。
选择Swift 4。

2.自己构建RealmSwift

一种。 现在,手动下载RealmSwift

  $ git clone-递归https://github.com/realm/realm-cocoa.git
 $ cd领域可可
 $ git checkout v2.10.0 

b。 获取子模块

  #在realm-cocoa目录的根目录
 $ git子模块更新--init 

C。 使用脚本构建,通过所需的设备传递参数

 如果忘记上一步,构建将失败
 $ REALM_SWIFT_VERSION = 4.0 sh build.sh ios交换 

这需要时间。

※或者您可以选择其他设备。

  $ REALM_SWIFT_VERSION = 4.0 sh build.sh osx-swift
 $ REALM_SWIFT_VERSION = 4.0 sh build.sh watchos-swift
 $ REALM_SWIFT_VERSION = 4.0 sh build.sh tvos-swift 

d。 知道了! 二进制文件将在realm-cocoa / build / ios / swift-4.0目录中生成

您只需用新的内容替换旧的框架。

做得好! 任务完成。

在我的私人项目中,向Swift 4的转换很容易(我只需要修复NSAttributedStringKey并在关键字“ dynamic”之前添加@objc注释即可。Xcode9教会了我应该做的一切。)

谢谢阅读! 快乐的编码。