DEV Community

Dev
Dev

Posted on

StoreKit External Purchase – Regional Restriction Not Working + canPresent() Always Returns False

Hi all,

We’re working on integrating StoreKit External Purchase into our iOS app and are running into a couple of issues that we could use some help with.

🔒 Goal

We’ve been approved under the Alternative Terms Addendum for Apps Distributed in the EU and have StoreKit External Purchase enabled.

✅ Our goal: Make this feature available only in the EU, not in the US.

However, we’re seeing signs that it might be active outside the EU (like in the US), which we don’t want.

⚠️ Technical Issue – canPresent() Always Returns false

While testing, the canPresent() API always returns false, even though our setup seems correct.

✅ Setup So Far

Entitlement added:
com.apple.developer.storekit.external-purchase

Info.plist entry added:

<key>SKExternalPurchase</key>
<array>
    <string>dk</string>
</array>
Enter fullscreen mode Exit fullscreen mode

Real iOS device (iPad) used for testing

App installed via Xcode

Device signed in with a Sandbox Apple ID set to Denmark

canMakePayments() returns true

❌ What’s Going Wrong

canPresent() keeps returning false

App still reports storefront as "USA", even though sandbox ID is set to Denmark

We've already tried:

Cleaning the project

Reinstalling the app

Verifying provisioning profiles

Restarting the device

❓ Questions

Are there known delays or caveats with sandbox account region propagation?

Are there specific device or App Store settings that might override the expected region?

Would really appreciate any insight or if anyone else has seen this behavior. Thanks in advance!

Top comments (0)