iOS App Entitlement 'com.apple.developer.payment-pass-provisioning' does not get incorporated in build in Xcode 9
Asked Answered
B

1

10

I am developing an App that allows a user to provision a payment pass in the Wallet via the App. In order to do this you must request Apple to add the following entitlement

com.apple.developer.payment-pass-provisioning 

to your development team such that you can create provisioning profiles with this entitlement.

In XCode 8.2 this was working correctly. Uploading an archive to the app store with this entitlement in the provisioning profile would have the entitlement included in the App. You could verify that the entitlement was there in the summary window before hitting the upload button for the final time.

However, in XCode 9, 9.1 and 9.2 the entitlement does not appear in the summary, and the entitlement is not present in the uploaded App. Has anyone else experienced this problem and has a solution, or is this just an XCode 9 bug.

Benefice answered 6/12, 2017 at 4:49 Comment(2)
I'm also using "com.apple.developer.payment-pass-provisioning" these entitlements in my app Apple granted this entitlement for my team ID modified my provisioning profile with this entitlement enabled But still I'm getting this error ApplePayDemo[1080:612489] com.test.mib missing entitlement: com.apple.developer.payment-pass-provisioningOverstrain
Hi Balu. See my answer below. You need to add it as an entitlement. I will put in a proper answer,.Benefice
B
10

For anyone running into this. In XCode 8 the entitlement is added 'magically' to the entitlement file. In 9 you have to set it yourself in the entitlement file dictionary as a boolean.

So for example, in your .entitlements add in the following to the Entitlements File Dictionary.

Key: com.apple.developer.payment-pass-provisioning   
Type: Boolean
Value: Yes 

Or in xml view

<key>com.apple.developer.payment-pass-provisioning</key>
<true/>
Benefice answered 8/2, 2018 at 5:3 Comment(14)
Hi Bergasms. I added this in .entitlements but still getting the same... Did you achieve your requirement? I'm not able to invoke Wallet add card flow. Can you please suggest. I tried PKPassLibrary *libra; [libra openPaymentSetup];Overstrain
You need to use a PKAddPaymentPassRequestConfiguration and present a PKAddPaymentPassViewController if you want to add a card to the wallet, or at least in my case I had to.Benefice
I'm able to present PKAddPaymentPassViewController passing some values using PKAddPaymentPassRequestConfiguration this its asking add card manually if I click on that values are not prepopulating....Overstrain
that sounds like it might be an issue regarding your provider who gives you your PAI, etc.Benefice
I achieved this now able to pass the PKAddPaymentPassRequestConfiguration values to PKAddPaymentPassViewController.Overstrain
@Benefice HIII. I want to add card details into apple wallet from my ios app. That is Whenever the user wants to add cards to the wallet and he clicks the add cards button then it displays the apple wallet for adding cards. I added the com.apple. developer.payment-pass-provisioning in my entitlements. Can I call the apple wallet from my ios app. please suggest me.Hecker
Yes, with that entitlement you should be able to launch the wallet by following the examples apple provides. You will need to contact apple though if you want to be able to submit it to the app storeBenefice
I am getting the error like your provisioning profile doesn't include the com.apple.developer.payment-pass-provisioning . I added this manually in entitlement file. I don't know how to include it in provision file. or for this can i get the permission from the apple.Hecker
Yes, in order to get that entitlement added to your provisioning profile, you need to email Apple. There is an address on the documentation that you can email to discuss adding it. You need to specify the bundle ID, team ID and things like that. Once you have the capability added for an app ID, when you go to create a profile you have the following option available to you. imgur.com/e95ksveBenefice
Could you please tell me, What should be implementation for PKAddPaymentPassViewControllerDelegate methods?Housebreaker
@GauravBorole the main job of this class is to send the info it receives to your backend, your backend will then talk to your payment provider and respond with some encrypted information which you then pass back to apple via the callback.Benefice
@Benefice I was able to get certificates, nonce and nonceSignature. I'm sending them to our server and I'm getting encryptedPassData, ActivationData and EmpherialKey in return. When I'm sending them back to PKAddPaymentPassRequest, I'm getting error from Apple saying "Your Issuer Does Not Yet Offer Support for This Card". Can you please help me on thisTical
hi @MahendraThotakura i'm sorry but i'm not sure I can help with that. If you are getting the communication going both ways (eg to the server and then to apple) then it's most likely an issue on the server side.Benefice
Thanks for the reply @Bergasms, we were able to fix the issue, the issue is with the encryption of Empherial, ActivationData and EncryptedPassData. Our server team is sending them in Hex encryption. But I tried with Base64 and UTF8.Tical

© 2022 - 2024 — McMap. All rights reserved.