Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -86,5 +86,3 @@ android/generated
ios/Pods/
*.xcworkspacedata

# Local properties (*.example are non-local illustations, however)
example/android/app/app.properties
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
## Changelog
### v2026.3.1 Mar 5, 2026

* Fix compatibility issues to support Kotlin 2.2.21
* **Android:** React Native 0.75.x requires a patch for Kotlin 2.2.x compatibility. See [Kotlin Compatibility Workaround](docs/KOTLIN_COMPATIBILITY.md)

### v2026.2.1 Feb 12, 2026

* Fix SDK to Android SDK 2.3.4 and iOS to 2.3.1

### v2026.1.1 Jan 31, 2026

* Upgrade iOS SDK to 2.4.0
Comment on lines +11 to +13
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, did we forget to update our changelog for this release?


### v2025.2.1 Feb 19, 2025

* Address NPM dependency issue
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ Before getting started, please review the Requirements and Limitations and Devic
* Android: [Requirements and Limitations](https://developer.squareup.com/docs/mobile-payments-sdk/android#requirements-and-limitations), [Device Compatibility](https://developer.squareup.com/docs/mobile-payments-sdk/android#device-permissions)
* iOS: [Requirements and Limitations](https://developer.squareup.com/docs/mobile-payments-sdk/ios#requirements-and-limitations), [Device Compatibility](https://developer.squareup.com/docs/mobile-payments-sdk/ios#device-permissions)

## Android: Kotlin 2.2.x Compatibility

Mobile Payments SDK 2.4.0 requires Kotlin 2.2.21, which is not yet supported by React Native's Gradle plugin (0.75.x and earlier). Android builds will fail unless you apply a small patch to your project. See the [Kotlin Compatibility Workaround](docs/KOTLIN_COMPATIBILITY.md) for step-by-step instructions.

## Installation
```sh
npm install mobile-payments-sdk-react-native
Expand Down
4 changes: 2 additions & 2 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ buildscript {
}

dependencies {
classpath "com.android.tools.build:gradle:8.6.0"
classpath "com.android.tools.build:gradle:8.7.2"
// noinspection DifferentKotlinGradleVersion
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
Expand Down Expand Up @@ -88,7 +88,7 @@ repositories {
}

def kotlin_version = getExtOrDefault("kotlinVersion")
def squareSdkVersion = "2.3.4"
def squareSdkVersion = "2.4.0"

dependencies {
// For < 0.71, this will be from the local maven repo
Expand Down
2 changes: 1 addition & 1 deletion android/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
MobilePaymentsSdkReactNative_kotlinVersion=2.0.21
MobilePaymentsSdkReactNative_kotlinVersion=2.2.21
MobilePaymentsSdkReactNative_minSdkVersion=28
MobilePaymentsSdkReactNative_targetSdkVersion=35
MobilePaymentsSdkReactNative_compileSdkVersion=35
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,9 @@ fun ReadableMap.readPaymentParameters(): PaymentParameters {
val statementDescription = getString("statementDescription")
val teamMemberId = getString("teamMemberId")
val tipMoney = convertToMoney(getMap("tipMoney"))
val idempotencyKey = getString("idempotencyKey")
val paymentAttemptId = getString("paymentAttemptId")
val paymentAttemptId = getString("paymentAttemptId") ?: ""

val builder = PaymentParameters.Builder(amountMoney, processingMode, allowCardSurcharge)
val builder = PaymentParameters.Builder(amountMoney, processingMode, allowCardSurcharge, paymentAttemptId)
acceptPartialAuthorization?.let { builder.acceptPartialAuthorization(it) }
appFeeMoney?.let { builder.appFeeMoney(it) }
autocomplete?.let { builder.autocomplete(it) }
Expand All @@ -78,8 +77,6 @@ fun ReadableMap.readPaymentParameters(): PaymentParameters {
statementDescription?.let { builder.statementDescription(it) }
teamMemberId?.let { builder.teamMemberId(it) }
tipMoney?.let { builder.tipMoney(it) }
idempotencyKey?.let { builder.idempotencyKey(it) }
paymentAttemptId?.let { builder.paymentAttemptId(it) }

return builder.build()
}
Expand Down
128 changes: 128 additions & 0 deletions docs/KOTLIN_COMPATIBILITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Kotlin 2.2.x Compatibility Workaround for React Native

Mobile Payments SDK 2.4.0 requires **Kotlin 2.2.21**, which introduces a breaking change with React Native's Gradle plugin (versions 0.75.x and earlier). The `KotlinTopLevelExtension` class was removed in Kotlin 2.2.x, causing the Android build to fail during Gradle configuration.

This guide explains how to apply a patch to your project so you can use Mobile Payments SDK 2.4.0 with React Native until React Native itself adds support for Kotlin 2.2.x.

> **Note:** This workaround is temporary. Once React Native releases a version with Kotlin 2.2.x support, you can remove the patch and `patch-package` dependency.

## The Problem

When building with Kotlin 2.2.21, Android builds fail with an error like:

```
Unresolved reference: KotlinTopLevelExtension
```

This happens because React Native's Gradle plugin (`@react-native/gradle-plugin`) references `org.jetbrains.kotlin.gradle.dsl.KotlinTopLevelExtension`, which was removed in Kotlin 2.2.x and replaced with `kotlinExtension`.

## Fix: Apply a Patch with `patch-package`

### 1. Install `patch-package`

```sh
# npm
npm install --save-dev patch-package

# yarn
yarn add --dev patch-package
```

### 2. Add a `postinstall` script

In your project's `package.json`, add a `postinstall` script so the patch is applied automatically after every install:

```json
{
"scripts": {
"postinstall": "patch-package"
}
}
```

If you already have a `postinstall` script, chain the commands:

```json
{
"scripts": {
"postinstall": "your-existing-command && patch-package"
}
}
```

### 3. Create the patch file

Create the file `patches/@react-native+gradle-plugin+0.75.3.patch` in your project root.

> **Important:** The version in the filename (`0.75.3`) must match your `react-native` version. If you are on a different version (e.g., `0.75.4`), adjust the filename accordingly.

```sh
mkdir -p patches
```

Paste the following contents into `patches/@react-native+gradle-plugin+0.75.3.patch`:

```diff
diff --git a/node_modules/@react-native/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/JdkConfiguratorUtils.kt b/node_modules/@react-native/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/JdkConfiguratorUtils.kt
index 0d55714..e59e9d5 100644
--- a/node_modules/@react-native/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/JdkConfiguratorUtils.kt
+++ b/node_modules/@react-native/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/JdkConfiguratorUtils.kt
@@ -13,7 +13,7 @@ import org.gradle.api.Action
import org.gradle.api.JavaVersion
import org.gradle.api.Project
import org.gradle.api.plugins.AppliedPlugin
-import org.jetbrains.kotlin.gradle.dsl.KotlinTopLevelExtension
+import org.jetbrains.kotlin.gradle.dsl.kotlinExtension

internal object JdkConfiguratorUtils {
/**
@@ -42,10 +42,10 @@ internal object JdkConfiguratorUtils {
project.pluginManager.withPlugin("com.android.application", action)
project.pluginManager.withPlugin("com.android.library", action)
project.pluginManager.withPlugin("org.jetbrains.kotlin.android") {
- project.extensions.getByType(KotlinTopLevelExtension::class.java).jvmToolchain(17)
+ project.kotlinExtension.jvmToolchain(17)
}
project.pluginManager.withPlugin("org.jetbrains.kotlin.jvm") {
- project.extensions.getByType(KotlinTopLevelExtension::class.java).jvmToolchain(17)
+ project.kotlinExtension.jvmToolchain(17)
}
}
}
```

### 4. Run install to apply the patch

```sh
# npm
npm install

# yarn
yarn install
```

You should see output confirming the patch was applied:

```
patch-package 8.0.1
Applying patches...
@react-native/gradle-plugin@0.75.3 ✔
```

### 5. Build your project

Your Android build should now succeed with Kotlin 2.2.21 and Mobile Payments SDK 2.4.0.

## Removing the Workaround

When React Native releases a version that supports Kotlin 2.2.x natively:

1. Upgrade your `react-native` dependency to the compatible version
2. Delete the `patches/@react-native+gradle-plugin+0.75.3.patch` file
3. Remove `patch-package` from your `devDependencies` (if no other patches remain)
4. Remove `patch-package` from your `postinstall` script

## Reference

- [Mobile Payments SDK React Native Example](../example/) - see how the patch is applied in the sample project
- [patch-package documentation](https://github.com/ds300/patch-package)
3 changes: 2 additions & 1 deletion example/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ The example app makes the following assumptions:
* Clone this repo (if you have not already):
`https://github.com/square/mobile-payments-sdk-react-native`
* Make sure you've set up your environment for developing in React Native, by visiting the [React Native - Environment Setup](https://reactnative.dev/docs/environment-setup) guide.
* **Android 16KB:** The example is configured for 16KB page size support (NDK r28, Build Tools 35). Install **NDK 28.0.12433566** (or newer r28) and **Build Tools 35.0.0** via Android Studio SDK Manager if needed.

## 2. Get application credentials
In your [Developer Dashboard](https://developer.squareup.com/apps), create an application or open an existing one you would like to use. If this is your first time creating an application with Square, you can review this [Get Started](https://developer.squareup.com/docs/square-get-started) guide for more information.
Expand All @@ -53,7 +54,7 @@ Click "Locations" in the left navigation and make note of the Default Test Accou
## 4. Run the app
1. Make sure you're in the root folder of the repository.
2. Run `yarn`, then `yarn example start`. This will start `Metro`, the JavaScript _bundler_ that ships _with_ React Native.
3. Once Metro has loaded, select the plaform of your choice: `a` for Android, `i` for iOS.
3. Once Metro has loaded, select the platform of your choice: `a` for Android, `i` for iOS.

You can also run the app for each individual platform by opening `ios/MobilePaymentsSdkReactNativeExample.xcworkspace` in Xcode for iOS; or `android/build.gradle` in Android Studio, for Android.

Expand Down
13 changes: 13 additions & 0 deletions example/android/app/app.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# You can copy this file to app.properties (lose ".example"), and set the values
# from https://developer.squareup.com/apps/${app_id}, but .gitignore will keep
# the "secret" values out of source control.

# This identifies your application to Square
APP_ID="INSERT APP_ID HERE"

# This identifies the merchant. In most cases, OAuth is best for production
# usage (read https://developer.squareup.com/docs/oauth-api/overview), but that
# requires a server, and we can't know where or how developers configure that.
# The dashboard values can be put here for quick test access.
LOCATION_ID="INSERT LOCATION_ID HERE"
ACCESS_TOKEN="INSERT ACCESS TOKEN HERE"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are these used somewhere?

7 changes: 7 additions & 0 deletions example/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -117,12 +117,19 @@ android {
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}

dependencies {
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
// Mobile Payments SDK 2.4.0
implementation("com.squareup.sdk:mobile-payments-sdk:$squareSdkVersion")
implementation("com.squareup.sdk:mockreader-ui:$squareSdkVersion")
if (hermesEnabled.toBoolean()) {
implementation("com.facebook.react:hermes-android")
} else {
Expand Down
6 changes: 3 additions & 3 deletions example/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ buildscript {
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "26.1.10909125"
kotlinVersion = "2.0.21"
squareSdkVersion = "2.3.4"
kotlinVersion = "2.2.21"
squareSdkVersion = "2.4.0"
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:8.6.0")
classpath("com.android.tools.build:gradle:8.7.2")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
284D5646CA70F0F108B69F7F /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 2D836B28FA8B57D7645367CD /* PrivacyInfo.xcprivacy */; };
51020FEC579777DE4F21EAC5 /* libPods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D30A649CCF0A90BF84256D98 /* libPods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests.a */; };
54EC517F2D35EEB00057F107 /* Config.m in Sources */ = {isa = PBXBuildFile; fileRef = 54EC517E2D35EEB00057F107 /* Config.m */; };
76609350658068AD83AAC1BE /* libPods-MobilePaymentsSdkReactNativeExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C2E96D599ED83A7F7AC20C63 /* libPods-MobilePaymentsSdkReactNativeExample.a */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
A1682D0D2CBE8D470011933F /* libmobile-payments-sdk-react-native.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A1682D0C2CBE8D470011933F /* libmobile-payments-sdk-react-native.a */; };
Expand Down Expand Up @@ -58,8 +57,6 @@
13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = MobilePaymentsSdkReactNativeExample/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
1DA8265643A6ECAEB8883020 /* Pods-MobilePaymentsSdkReactNativeExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobilePaymentsSdkReactNativeExample.debug.xcconfig"; path = "Target Support Files/Pods-MobilePaymentsSdkReactNativeExample/Pods-MobilePaymentsSdkReactNativeExample.debug.xcconfig"; sourceTree = "<group>"; };
2D836B28FA8B57D7645367CD /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = MobilePaymentsSdkReactNativeExample/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
54EC517D2D35EEB00057F107 /* Config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Config.h; path = MobilePaymentsSdkReactNativeExample/Config.h; sourceTree = "<group>"; };
54EC517E2D35EEB00057F107 /* Config.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = Config.m; path = MobilePaymentsSdkReactNativeExample/Config.m; sourceTree = "<group>"; };
5EF6B75290F83F4093F5CD5A /* Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests.debug.xcconfig"; path = "Target Support Files/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests.debug.xcconfig"; sourceTree = "<group>"; };
65D88241E83508BA54D8AB2E /* Pods-MobilePaymentsSdkReactNativeExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MobilePaymentsSdkReactNativeExample.release.xcconfig"; path = "Target Support Files/Pods-MobilePaymentsSdkReactNativeExample/Pods-MobilePaymentsSdkReactNativeExample.release.xcconfig"; sourceTree = "<group>"; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = MobilePaymentsSdkReactNativeExample/LaunchScreen.storyboard; sourceTree = "<group>"; };
Expand Down Expand Up @@ -124,8 +121,6 @@
13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */,
2D836B28FA8B57D7645367CD /* PrivacyInfo.xcprivacy */,
A1682D1C2CBE9EC10011933F /* MobilePaymentsSdkReactNativeExample-Bridging-Header.h */,
54EC517D2D35EEB00057F107 /* Config.h */,
54EC517E2D35EEB00057F107 /* Config.m */,
);
name = MobilePaymentsSdkReactNativeExample;
sourceTree = "<group>";
Expand Down Expand Up @@ -343,10 +338,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests-resources.sh\"\n";
Expand All @@ -360,10 +359,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample/Pods-MobilePaymentsSdkReactNativeExample-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample/Pods-MobilePaymentsSdkReactNativeExample-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample/Pods-MobilePaymentsSdkReactNativeExample-resources.sh\"\n";
Expand Down Expand Up @@ -416,10 +419,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests/Pods-MobilePaymentsSdkReactNativeExample-MobilePaymentsSdkReactNativeExampleTests-frameworks.sh\"\n";
Expand All @@ -433,10 +440,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample/Pods-MobilePaymentsSdkReactNativeExample-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample/Pods-MobilePaymentsSdkReactNativeExample-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MobilePaymentsSdkReactNativeExample/Pods-MobilePaymentsSdkReactNativeExample-frameworks.sh\"\n";
Expand All @@ -458,7 +469,6 @@
buildActionMask = 2147483647;
files = (
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
54EC517F2D35EEB00057F107 /* Config.m in Sources */,
13B07FC11A68108700A75B9A /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#import <RCTAppDelegate.h>
#import <SquareMobilePaymentsSDK/SquareMobilePaymentsSDK-Swift.h>
#import <UIKit/UIKit.h>
#import <React/RCTBridgeModule.h>
#import "SquareSDKInitializer.h"

@interface AppDelegate : RCTAppDelegate

Expand Down
Loading
Loading