RSDKUtils module contains useful utilities, extensions, and common classes used in SDK development.
RSDKUtils consists of 4 sub-modules:
- Main - Contains the most common utilities for various purposes like networking, data storage, and standard class extensions.
- TestHelpers - Contains useful mocks and XCTest extensions.
- Nimble - Adds additional Nimble expectations like
toAfterTimeout
. - RLogger - A tool for managing your log messages.
This module supports the following operating systems:
- iOS 12.0 and above (including extension contexts)
- watchOS 6.0 and above
- macOS 10.13 and above
This module has been tested with iOS 12.0 and above.
Xcode 12.5.x or Xcode 13+
Swift >= 5.4 is supported.
Note: The SDK may build on earlier Xcode versions but it is not officially supported or tested.
To use the module in its basic configuration your Podfile
should contain:
# Defined also as 'RSDKUtils/Main'
pod 'RSDKUtils', :git => '~> 4.0.0'
To use other functionalities, add their respective subspec to your Podfile
:
pod 'RSDKUtils/TestHelpers', '~> 4.0.0'
pod 'RSDKUtils/Nimble', '~> 4.0.0'
pod 'RSDKUtils/RLogger', '~> 4.0.0'
Run pod install
to install the module.
More information on installing pods: https://guides.cocoapods.org/using/getting-started.html
Open your project settings in Xcode and add a new package in 'Swift Packages' tab:
- Repository URL:
https://github.com/rakutentech/ios-sdkutils.git
- Version settings: branch
master
or 4.0.0 "Up to Next Major"
Choose one of the following products for your target:
- RSDKUtilsMain
- RSDKUtilsTestHelpers
- RSDKUtilsNimble
- RLogger
In order to use available utilities you need to add import
statement in your source file:
import RSDKUtils
Depending on which product(s) you want to use, add one or more import
:
import RSDKUtilsMain
import RSDKUtilsNimble
import RSDKUtilsTestHelpers
import RLogger
You can test the module as a Swift Package and as a Cocoapod.
Run pod install
then open RSDKUtils.xcworkspace and run Tests
target.
Open Package.swift
in Xcode, choose iOS Simulator and run Tests
target.
swift package clean
swift test -Xswiftc "-sdk" -Xswiftc `xcrun --sdk iphonesimulator --show-sdk-path` -Xswiftc "-target" -Xswiftc "x86_64-apple-ios14.5-simulator"
dyld: Symbol not found:
error when running tests (Cocoapods version)
This usually happens when TestHelpers
or Nimble
subspec is linked only to tests target where Host app target is linked to other RSDKUtils subspec at the same time. More info can be found here: CocoaPods/CocoaPods#7195
The solution for that is to link TestHelpers
and Nimble
spec to the Host app target either explicitly or as a testspecs
.
target 'HostAppTarget'
pod 'RSDKUtils', '~> 4.0.0', :testspecs => ['Nimble', 'TestHelpers']
end