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
master
or 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 RSDKUtils
Installed with SPM
Depending on which product(s) you want to use, add one or more import
:
import RSDKUtilsMain
import RSDKUtilsNimble
import RSDKUtilsTestHelpers
import RLogger
Testing 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