Skip to content

Latest commit

 

History

History
104 lines (77 loc) · 3.75 KB

README.md

File metadata and controls

104 lines (77 loc) · 3.75 KB

Build Status Quality Gate Status

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.

⚠️ WARNING: Command-line testing is not available at the moment because of bug https://bugs.swift.org/browse/SR-13773

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