Pin the Apple Pay merchant identifier per sample app - #578
Merged
kieran-osgood-shopify merged 1 commit intoAug 12, 2026
Conversation
Contributor
Author
This was referenced Aug 5, 2026
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 5, 2026 11:06
d06a603 to
3cec2c3
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
2 times, most recently
from
August 5, 2026 11:35
3326bed to
ef9dbba
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 5, 2026 11:35
3cec2c3 to
af064ae
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 5, 2026 11:45
ef9dbba to
578c24e
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 5, 2026 11:45
af064ae to
386cb6e
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 5, 2026 12:33
578c24e to
ff257a4
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
2 times, most recently
from
August 6, 2026 15:48
92ea555 to
b9ad2ea
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 6, 2026 15:48
ff257a4 to
055b73d
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 6, 2026 17:30
b9ad2ea to
75a74ce
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 6, 2026 17:30
055b73d to
331300f
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 7, 2026 11:05
75a74ce to
1eb65b9
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 7, 2026 11:05
331300f to
0b7623f
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 7, 2026 11:26
1eb65b9 to
10e444c
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
2 times, most recently
from
August 7, 2026 13:51
97b992e to
4652f31
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 7, 2026 13:51
10e444c to
31f2d6e
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 7, 2026 14:15
4652f31 to
fd8babb
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 7, 2026 14:15
31f2d6e to
302bbf3
Compare
kieran-osgood-shopify
marked this pull request as ready for review
August 7, 2026 15:40
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 7, 2026 15:41
fd8babb to
e07a3ec
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 7, 2026 15:41
302bbf3 to
5c28904
Compare
Package Size
React Native file breakdown
Measured from the PR base SHA and PR head SHA. The file breakdown shows uncompressed sizes within each package artifact, so individual files do not sum to the compressed artifact total. This comment reports package artifact sizes only; it is not a final app binary-size report. |
Install this buildOpen Tophat, select your target device, then click Install. Links open on the Mac running Tophat.
Checkout Kit E2E results
|
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 10, 2026 09:08
5c28904 to
5161788
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 10, 2026 09:08
e07a3ec to
2546e3f
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 10, 2026 14:01
5161788 to
38ebbf3
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 10, 2026 14:01
2546e3f to
ba890d5
Compare
kyle-schellen
approved these changes
Aug 10, 2026
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 11, 2026 16:50
ba890d5 to
4d12c99
Compare
kieran-osgood-shopify
force-pushed
the
ejson
branch
from
August 11, 2026 16:50
38ebbf3 to
5008576
Compare
Contributor
Author
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 12, 2026 08:20
4d12c99 to
4d99c1b
Compare
| * storefront config. Keep it equal to ios/CheckoutKitReactNativeDemo/ | ||
| * CheckoutKitReactNativeDemo.entitlements. | ||
| */ | ||
| const APPLE_PAY_MERCHANT_IDENTIFIER = |
Contributor
Author
There was a problem hiding this comment.
this went the wrong direction due to entitlements, updating to use xcconfig now
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 12, 2026 09:05
4d99c1b to
79bf223
Compare
Apple Pay rejects a payment request whose merchant identifier is absent from the entitlement of the app that sends it. Each sample registers a different identifier, so a single shared storefront config key cannot be correct for both apps at once. Each sample now states its identifier next to its own entitlement. The Swift demo defines it once in project.yml and the entitlement reads it back, so the runtime value and the entitlement cannot drift. React Native uses a constant matching its committed entitlements file. STOREFRONT_MERCHANT_IDENTIFIER is now inert, so it leaves demo.ejson. It still lingers in .env, .env.example and setup_storefront_env; the phase that rewrites those code paths removes it there. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
kieran-osgood-shopify
force-pushed
the
kieran-osgood/apple-pay-merchant-identifier
branch
from
August 12, 2026 09:32
79bf223 to
c480ca8
Compare
kieran-osgood-shopify
deleted the
kieran-osgood/apple-pay-merchant-identifier
branch
August 12, 2026 09:50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Why
Apple Pay requires a merchant identifier, our samples got that value from multiple locations (react native had both a dynamic runtime value and a static value in the entitlements, leading to confusion)
Swift used a dynamic value, but used a name that sounds like storefront configuration
What
Updated all samples to use
APPLE_PAY_MERCHANT_IDENTIFIERfrom the .envPropagate the value to entitlements via xcconfig and xcodegen
Going forwards updating this value is a single line update for each app respectively
How
One part that was tricky was the react-native one as we dont use xcodegen the ios files are committed, which means xcode expects a file reference to the xcconfig in the pbxproject, but we generate the xcconfig from .env
To workaround this I used an empty Config.xcconfig committed, and inside of it use an include directive to pull in an optional Storefront.xcconfig
This gives us the benefit of compilation working from a clean clone for CI and matching the react-native/swift DX
Additional
To avoid breaking peoples dev up on the next pull, the existing
STOREFRONT_MERCHANT_IDENTIFIER.env value will be temporarily mapped to the new values(it'll become moot once the PR's above merge to generate the .env)
Before you merge
Important
platforms/swift/README.mdand/orplatforms/android/README.md)Releasing a new Swift version?
ShopifyCheckoutKit.podspecplatforms/swift/Sources/ShopifyCheckoutKit/ShopifyCheckoutKit.swiftplatforms/swift/README.md(major version only)Releasing a new Embedded Checkout Protocol version?
embeddedCheckoutProtocolAndroidinplatforms/android/gradle/libs.versions.tomlprotocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.apiif the public API changedReleasing a new Android version?
checkoutKitAndroidinplatforms/android/gradle/libs.versions.tomlplatforms/android/README.mdTip
See the Contributing documentation for the full release process per platform.