Troubleshooting & FAQs

Troubleshoot common error scenarios and find answers to frequently asked questions about standard iOS integration.


Following is the list of frequently asked questions while integrating our iOS SDK. If none of the below-mentioned questions resolves your problem, you can contact the

for any queries.

When a framework is distributed, it contains architectures of the simulators so that the consumer of the framework can build it on a simulator. However, when uploading the archive on iTunes, you have to strip these architectures. If you use Cocoapods, it strips the simulator architectures on its own.

Since you are not using it, please follow the below-mentioned steps:

  1. Download the .
  2. Locate the directory in which Razorpay.framework is present in the archive that you are trying to upload.
  3. Move the attached script in the above directory and run it.
  4. Remove the script file.

No. You see the update SDK alert because a newer version of our SDK is available. We recommend you to use the latest SDK. This message shows up only when running the app on a simulator or using a test key to initialize the SDK.

  • Ensure that Razorpay.framework is present in your project settings in both the Embedded Binaries and Linked Frameworks.
  • Set Always Embed Swift Libraries to "yes" in the project settings. It can happen because of the incompatibility between the developed Swift version with Razorpay.framework and the Swift version of your project.
  • We recommend using the framework compiled with the required Swift language from our iOS documentation.

Razorpay's bitcode enabled framework works even if you do not enable bitcode in your project.

There are multiple Swift versions available, but unfortunately, Apple does not make all the versions compatible, so we release frameworks compiled in multiple Swift versions.

  • Download the framework that is compatible with your project.
  • If you run into a compatibility issue, ensure that you try both frameworks.

A module map is used to define the header files that should be converted into modules and used by your project. Razorpay handles this internally.

  • Cause: By default, the Xcode's name is assumed to be Xcode.app. For example, your default Xcode appears as Xcode9.3.
  • Resolution: Insert script in the directory that contains Razorpay.framework file and run it from your terminal.

  • Cause: As per Apple's policy, if you use a subscription model in your iOS app, you must use Apple's in-app purchase APIs. Apple does not redirect out of the app for digital product purchases.
  • Resolution: Use Apple's in-app purchase APIs.

An application involving a subscription model could be rejected because of the guideline 3.1.1 - Business - Payments - In-App Purchase. This is due to the fact that subscription comes under the Auto-renewable subscriptions to a service section of the


You cannot use an external payment gateway to accept payments by selling digital products or content. You must use Appleā€™s In-App Purchase to avoid app rejection.

  • Consumable content like lives or gems in a game.
  • Non-consumable content like premium features in an app.
  • Auto-renewable subscriptions to a service, like cloud storage or a magazine.
  • Non-renewing subscriptions to a service or content that lasts for a limited time, like access to an in-game battle pass.