
Platform: IOS | MacOs | tvOS | watchOS | Linux
Language: Swift
Language: Swift
Device:
iPhone / iPad
Download
Installation
CocoaPods
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'RxSwift', '~> 5'
pod 'RxCocoa', '~> 5'
end
# RxTest and RxBlocking make the most sense in the context of unit/integration tests
target 'YOUR_TESTING_TARGET' do
pod 'RxBlocking', '~> 5'
pod 'RxTest', '~> 5'
end
Replace YOUR_TARGET_NAME and then, in the Podfile directory, type:
$ pod install
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'RxSwift', '~> 5'
pod 'RxCocoa', '~> 5'
end
# RxTest and RxBlocking make the most sense in the context of unit/integration tests
target 'YOUR_TESTING_TARGET' do
pod 'RxBlocking', '~> 5'
pod 'RxTest', '~> 5'
end
YOUR_TARGET_NAME and then, in the Podfile directory, type:$ pod install
Carthage
Officially supported: Carthage 0.33 and up.
Add this to Cartfile
github "ReactiveX/RxSwift" ~> 5.0
$ carthage update
Cartfilegithub "ReactiveX/RxSwift" ~> 5.0
$ carthage update
Carthage as a Static Library
Carthage defaults to building RxSwift as a Dynamic Library.
If you wish to build RxSwift as a Static Library using Carthage you may use the script below to manually modify the framework type before building with Carthage:
carthage update RxSwift --platform iOS --no-build
sed -i -e 's/MACH_O_TYPE = mh_dylib/MACH_O_TYPE = staticlib/g' Carthage/Checkouts/RxSwift/Rx.xcodeproj/project.pbxproj
carthage build RxSwift --platform iOS
carthage update RxSwift --platform iOS --no-build
sed -i -e 's/MACH_O_TYPE = mh_dylib/MACH_O_TYPE = staticlib/g' Carthage/Checkouts/RxSwift/Rx.xcodeproj/project.pbxproj
carthage build RxSwift --platform iOS
Swift Package Manager
Create a Package.swift file.
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "RxTestProject",
dependencies: [
.package(url: "https://github.com/ReactiveX/RxSwift.git", from: "5.0.0")
],
targets: [
.target(name: "RxTestProject", dependencies: ["RxSwift", "RxCocoa"])
]
)
$ swift build
To build or test a module with RxTest dependency, set TEST=1.
$ TEST=1 swift test
Package.swift file.// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "RxTestProject",
dependencies: [
.package(url: "https://github.com/ReactiveX/RxSwift.git", from: "5.0.0")
],
targets: [
.target(name: "RxTestProject", dependencies: ["RxSwift", "RxCocoa"])
]
)
$ swift build
TEST=1.$ TEST=1 swift test
Manually using git submodules
- Add RxSwift as a submodule
$ git submodule add git@github.com:ReactiveX/RxSwift.git
- Drag
Rx.xcodeproj into Project Navigator
- Go to
Project > Targets > Build Phases > Link Binary With Libraries, click + and select RxSwift-[Platform] and RxCocoa-[Platform] targets
$ git submodule add git@github.com:ReactiveX/RxSwift.git
Rx.xcodeproj into Project NavigatorProject > Targets > Build Phases > Link Binary With Libraries, click + and select RxSwift-[Platform] and RxCocoa-[Platform] targets