ExternalPurchase.canPresent returns false despite complete configuration (iOS 17.4+, EU)

I'm implementing the External Purchase API in my iOS app for EU DMA compliance, but ExternalPurchase.canPresent always returns false despite having completed all configuration steps.

Configuration:

  • Alternative Terms Addendum for Apps in the EU: Signed on January 3, 2026
  • Entitlement: com.apple.developer.storekit.external-purchase.enabled (enabled in Xcode)
  • Provisioning profile: Regenerated with new capability
  • Info.plist: SKExternalPurchase array with all 27 EU country codes
  • Test device: Physical iPhone, Belgium App Store, iOS 18.2

Code: guard await ExternalPurchase.canPresent else { print("Cannot present - canPresent is false") return }

Debug output shows canPresent is consistently false.

Questions:

  1. Is there an activation delay after signing the Alternative Terms Addendum?
  2. Does the API only work in TestFlight/Production builds (not development)?
  3. Is additional configuration required beyond entitlement + Info.plist + addendum?

Any guidance would be appreciated.

ExternalPurchase.canPresent returns false despite complete configuration (iOS 17.4+, EU)
 
 
Q