Skip to main content
The Yuno iOS SDK stays small on purpose: every third-party native SDK ships as a separate, optional module. You add only the modules your integration needs, and the Yuno SDK picks them up automatically when a checkout uses the matching provider. Your payment and enrollment code does not change.
Installing a module does not make the SDK use it: a module runs only when the provider is enabled for your Yuno account and the backend requests it for the current transaction.

Available modules

Package names by installation method: All modules require YunoSDK 2.25.0 or higher. Netcetera has extra setup steps (sandbox certificate), covered in Netcetera 3DS (iOS).

Installation

Every module lives in the same package as the Yuno SDK, so there is a single URL to add. In Xcode go to File > Add Package Dependencies…, add:
choose the Up to Next Major Version rule starting at 2.25.0, and in the product list tick YunoSDK plus the modules you need (YunoAntifraudClearsale, YunoAntifraudKoin, Yuno3DSNetcetera). Nothing else is required: each product brings its own vendor binary.

Activating a module

How a module registers itself with the Yuno SDK depends on how you installed it.
Modules installed through Swift Package Manager are dynamic frameworks and register themselves when the app launches. No code is required beyond adding the product to your target.
Once a module is registered the Yuno SDK uses it automatically. You do not need to change any payment, enrollment or 3DS code.

Troubleshooting

Static frameworks do not register themselves. Make sure you call the module’s register() before Yuno.initialize(...).
The platform line in your Podfile is below the module’s minimum. Use platform :ios, '14.0' for the antifraud and 3DS modules, or '15.0' if you add YunoRevolutPay.
A module pod depends on YunoSDK ~> 2.25. If your Podfile pins an older SDK (for example '2.24.1'), relax it to '~> 2.25'.
YunoRevolutPay requires RevolutPayments/RevolutPay ~> 3.16.0. If your Podfile pins another version of RevolutPayments, align it to '~> 3.16.0' or remove the pin and let YunoRevolutPay bring it.
Add the post_install hook shown in the CocoaPods tab above so every pod target builds for iOS 15.0.
The return deeplink is not reaching the Yuno SDK. Make sure your app declares a URL scheme, that incoming URLs are forwarded to Yuno.receiveDeeplink(url), and that a guard on the scheme is not dropping the Revolut Pay return URL (yourscheme://revolut-pay).
Affects YunoAntifraudClearsale 1.0.0 only. The module registers itself, so you do not need to import it from Swift: remove the import YunoAntifraudClearsale line and the project builds.