Skip to content

UPI intent not working on iOS #457

@vishnuprasad0

Description

@vishnuprasad0

Description

On iOS, selecting UPI (or Google Pay) from the Razorpay checkout does not open the external UPI app.
Works fine on Android.


Environment

  • Flutter Version: Flutter (Channel stable, 3.32.2)
  • Xcode Version: Version 16.2 (16C5032a)
  • Cocoapods:
    • razorpay-pod (1.4.3)
    • razorpay_flutter (1.1.10)

Expected Results

  • UPI intent should work on iOS the same way it works on Android (in live mode).

Info.plist

Added the schemes as mentioned in Razorpay documentation:

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>sms</string>
  <string>tel</string>
  <string>https</string>
  <string>tez</string>
  <string>phonepe</string>
  <string>paytmmp</string>
  <string>credpay</string>
  <string>mobikwik</string>
  <string>freecharge</string>
  <string>in.fampay.app</string>
  <string>bhim</string>
  <string>amazonpay</string>
  <string>navi</string>
  <string>kiwi</string>
  <string>payzapp</string>
  <string>jupiter</string>
  <string>omnicard</string>
  <string>icici</string>
  <string>popclubapp</string>
  <string>sbiyono</string>
  <string>myjio</string>
  <string>slice-upi</string>
  <string>bobupi</string>
  <string>shriramone</string>
  <string>indusmobile</string>
  <string>whatsapp</string>
</array>

Options at checkout -

  final options = {
    'key': 'our live key',
    'amount': order.amount / 10,
    'currency': order.currency,
    'name': 'ABC',
    'description': 'Wallet Top Up',
    'order_id': order.orderId,
    'prefill': {'contact': '', 'email': ''},
    'theme': {'color': '#8DDB90'},
    'external': {
      'wallets': ['paytm'],
    },
  };

Podfile

post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)

# Set the minimum iOS version for all pods
target.build_configurations.each do |config|
  config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.5.0'  # Changed to 15.5.0
  
  # The following improves build configuration for M1/M2 Macs
  config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'i386 arm64'
  config.build_settings['ENABLE_BITCODE'] = 'YES'
  config.build_settings['SWIFT_VERSION'] = '5.0'
end

Current Screen

Image

Image


Notes

  • Testing on real physical device (where this intent works fine inside other apps that also use Razorpay SDK).
  • What else needs to be configured to make UPI intent work on iOS ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions