Troubleshooting

Troubleshooting your Apple Nami Integration

Q: The App Store purchase sheet fails to appear on iOS 18.2

Answer:

StoreKit 2 has a bug in 18.2 which causes the purchase sheet to not appear in certain circumstances. It relates to internal view presentation handling in StoreKit 2 related to the addition of purchase(confirmIn:options:)

If this occurs you will see a message in the console or logs from the system saying:

Could not get confirmation scene ID for <product> purchase

There are three solutions for working around this bug, if it occurs for you. Choose the best one for your particular application:

  1. You prefer your paywall to be displayed as a full screen modal, but you're OK with it presenting as a non-modal.

No code or SDK change is required, just disable Fullscreen Presentation in the Nami Paywall Creator.

  1. You require your paywall to be displayed as a full screen modal.

This option will require an app update, but not a Nami SDK update.

Pass an additiona feature flag to the Nami.configurestep:

import NamiApple

let appPlatformId = "YOUR_APPLE_APP_PLATFORM_ID"

let namiConfig = NamiConfiguration(appPlatformId: appPlatformId)
// This feature flag tells the Nami SDK to use it's own UIWindow subclass, which
// happens to work around the StoreKit 2 presentation bug in iOS 18.2
namiConfig.namiCommands = ['namiWindow']
Nami.configure(with: namiConfig)
  1. You can adopt a Nami SDK update

Version 3.2.9 of the Nami Apple SDK contains a workaround to resolve this issue for all customers.

Q: Why are my in-app purchase products not showing up in TestFlight?

Answer:

If products are showing up in the simulator but not TestFlight, chances are Apple has released new developer terms and conditions that you need to accept in App Store Connect.

Q: Why are my in-app purchase products not showing up in the simulator?

Answer:

Starting in iOS 14, Apple requires that you have a StoreKit configuration file in order to display in-app purchase products in your app. See this article for an explanation of how to create this file.

Last updated