Edited at

RxSwiftをCarthageで入れたら実機で起動できなかったので、RxRelayも追加して解決した

RxSwiftとRxCocoaを追加後、ビルドはサクセスするのですが、実機で動作確認ししようとすると以下のエラーで落ちてしまいました。

dyld: Library not loaded: @rpath/RxRelay.framework/RxRelay

Referenced from: /var/containers/Bundle/Application/xxxxxxx-xxxx-xxxx-xxxx-477EBE5CC202/xxx.app/xxx
Reason: image not found

今回の解決方法は、RxRelayも追加することでした。

RxSwiftライブラリをビルドすると、以下の5つのフレームワークが生成されます。


  • RxSwift

  • RxCocoa

  • RxRelay

  • RxBlocking

  • RxTest

RxSwift, RxCocoaのみXcodeで追加すれば良いと思っていたのですが、どうやらRxRelayも必要みたいですね🤔

TARGETS -> General -> LinkedFrameworks and Libraries にRxRelayも追加し、

Build Phases の Input Files Lists, Output Files Lists にも追記しました。


input.xcfilelist

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

$(SRCROOT)/Carthage/Build/iOS/RxCocoa.framework
$(SRCROOT)/Carthage/Build/iOS/RxRelay.framework


output.xcfilelist

$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxSwift.framework

$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxCocoa.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxRelay.framework

以上で、無事に実機での動作確認を行えるようになりました。