RSDKUtils
Rakuten's SDK Team internal utilities module
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.
Requirements
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.
How to install
Installing with CocoaPods
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
Installing with Swift Package Manager
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
masteror 4.0.0 "Up to Next Major"
Choose one of the following products for your target:
- RSDKUtilsMain
- RSDKUtilsTestHelpers
- RSDKUtilsNimble
- RLogger
Using the SDK
In order to use available utilities you need to add import statement in your source file:
Installed with Cocoapods
import RSDKUtilsInstalled with SPM
Depending on which product(s) you want to use, add one or more import:
import RSDKUtilsMain
import RSDKUtilsNimble
import RSDKUtilsTestHelpers
import RLoggerTesting the module
You can test the module as a Swift Package and as a Cocoapod.
Test Cococapod
Run pod install then open RSDKUtils.xcworkspace and run Tests target.
Test Swift Package
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"
Troubleshooting
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