MPP SDK iOS provides functionality for Apple Pay In-App Provisioning support.
Implementing Apple Pay In-App Provisioning requires the following pre-requisites to be met:
- Signed agreement with Apple.
- Special Apple Pay In-App Provisioning entitlement distributed to the Team ID by Apple - Enabling app for Apple Pay In-App Provisioning.
- App Store app Adam ID whitelisted by Apple.
- Device iOS version must be 11.0 or above.
- Device must be able to connect to the Internet.
- Apple Pay might not be supported on Jailbroken devices.
It is recommended to use Xcode to develop and build the project.
Adding Framework and Configuration to Xcode Project
Nexus Repository credentials have changed when upgrading from Legacy version. Contact MeaWallet for new credentials.
Use provided Nexus Repository credentials to sign in:
Unzip the archive. Archive contains iOS XCFramework -
Frameworks, Libraries and Embedded Contentsection of
Generalsettings in iOS project target. Set
Embed & Sign.
Unzip the archive. Archive contains configuration file
mea_configto iOS App
Resourcesfolder and App
Target. File must be included in the final app bundle. Framework automatically loads configuration from app bundle during runtime.
Framework (Legacy version 1.1.0 and older)
2. Unzip the archive and find XCFramework -
3. Select Xcode project app target.
MeaPushProvisioning.xcframework to Frameworks, Libraries, and Embedded Content section of General settings for app target.
5. Add Apple
PassKit.framework to Frameworks, Libraries, and Embedded Content.
ApplePay.entitlements for Code Signing Entitlements in iOS project
Build Settings for iOS Device target.
MPP SDK is supported on Apple M1 and latest Xcode version. In Xcode project Build Settings for iOS Simulator target add
arm64 to Excluded Architectures to avoid the following error:
missing required architecture arm64 in file /Library/Developer/Xcode/DerivedData/MppTestApp/Build/Products/MppTestApp-iphonesimulator/MeaPushProvisioning.framework/MeaPushProvisioning (2 slices)
Undefined symbols for architecture arm64
ld: symbol(s) not found for architecture arm64
Enabling App for Apple Pay In-App Provisioning
Requesting Apple Pay In-App Provisioning Entitlement
Issuers need to apply for Apple Pay In-App Provisioning entitlements to develop and test the complete push provisioning flow.
Getting Started with Apple Pay In-App Provisioning documentation:
Only production Team ID and Adam ID can receive the entitlement and can be whitelisted. To request the entitlement and whitelist for your App(s), please send the following information by email to email@example.com:
- Issuer Name and Country Code
- App Name
- Team ID (e.g. 1ABCD2FGHI)
- Adam ID (e.g. 123456789)
Find Team ID on Apple Developer Account Membership website.
Find Adam ID (App Apple ID) on App Store Connect App Information website.
Once Apple Pay In-App Provisioning entitlements have been granted, the distribution entitlement should be included into a Provisioning Profile, and the same Provisioning Profile shoud be used to develop the app in Xcode.
Entitlements drop down will appear for Provisioning Profiles in Apple Developer website.
Configuring Associated Application Identifier
PassKit framework can be fully used only if the card profile sent by payment scheme token service (MDES, VTS) are configured with a correct Associated Application Identifier (App ID) value. This allows the issuer application to see and access active payment passes.
App ID is constructed by combining the Team ID with the App Bundle ID, for example, 1ABCD2FGHI.com.bank.app.
For MDES this value should be set in CIS Interview Preperation Guide document provided by the Mastercard. Go to sheet Product Configuration, scroll to row 59 and fill in the appropriate Issuer Response column.