cocoapodsでRxSwiftをインストールした際に出てきた謎のエラー「Expected ',' separator」
Environment
- Swift 4.2
- Cocoapods 1.5.3
- XCode 10.0
Problem
表題の通り、Expected ',' separator
っていうエラーがRxSwiftのパッケージ側に出てきて、ビルドがうまくいかなかった。
Cocoapodsで管理しているのですが、Pods以下はロックされていて自分でいじっては居ないし、じゃあRxSwiftのバグかなと思って調べても特に出てこない。
それで、エラーが出ている箇所のソースコードを見ると、引数によくわからないものを渡していることに気づきました。 それでリモートリポジトリのソースコードを確認すると、エラーが出ているローカルのソースコードと違っていました。
// my local library source cord(RxSwift/Observables/Timer.swift) return _parent._scheduler.scheduleRelative(self, dueTime: _parent._dueTime) { (_f_`) -> Disposable in
// https://github.com/ReactiveX/RxSwift/blob/53cd723d40d05177e790c8c34c36cec7092a6106/RxSwift/Observables/Timer.swift#L78 return _parent._scheduler.scheduleRelative(self, dueTime: _parent._dueTime) { (`self`) -> Disposable in
😳!
Solution
まあ、たぶんXCodeのSwift4.2シンタックスへの自動変換のときに、気づかないで変更しちゃったのかな、と思います。 解決方法としては、以下のようにCocoapodsのキャッシュを削除した上で、プロジェクトのPodsディレクトリ以下を削除して再インストールしましょう。
念の為、DerivedData以下のビルドキャッシュも消したほうが良いかもしれません。
rm -rf ~/Library/Caches/CocoaPods rm -rf [path to project]/Pods // optional rm -rf ~/Library/Developer/Xcode/DerivedData pod install
訂正(2019/09/27 15:48)
これ、Build Phaseで設定していたswiftlint autocorrect
の仕業でした。アホすぎる。。
[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)
- 作者: 石川洋資,西山勇世
- 出版社/メーカー: 技術評論社
- 発売日: 2018/01/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る