Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apple Pay entitlement is required even when not used #60

Closed
sergey-sportsetter opened this issue Oct 28, 2014 · 19 comments
Closed

Apple Pay entitlement is required even when not used #60

sergey-sportsetter opened this issue Oct 28, 2014 · 19 comments

Comments

@sergey-sportsetter
Copy link
Contributor

Using Braintree 3.4.0, v.zero drop-in UI

Upon submission to Apple, got the message:

App contains references to [Apple Pay] in 'SportSetter', but is missing the required entitlement '.com.apple.developer.in-app-payments'

Previously, this entitlement was not necessary

@mickeyreiss
Copy link
Contributor

@sergey-sportsetter Is this message a warning or an error that blocks submission to the app store?

I can confirm that if you have not explicitly implemented Apple Pay, the Apple Pay code within the SDK will not run.

@sergey-sportsetter
Copy link
Contributor Author

This is an automated warning I got immediately after upload to iTunes Connect. It's currently in review, so I'll be sure to let you guys know how it goes

@sergey-sportsetter
Copy link
Contributor Author

It had no effect on the review - the update went through, as expected

@mickeyreiss
Copy link
Contributor

Thanks for reporting back. If anyone experiences further problems with this, we can try to use the preprocessor to compile out any Apple Pay related code.

@jamesrgrinter
Copy link

Also using the v.zero 3.4.0 Drop-in UI, we got the above warning on submission, and then got a Review feedback request: "Does the app currently have Apple Pay functionality? If so, please provide detailed steps on where to find the Apple Pay functionality in the app."

I assume the comment, 'if you have not explicitly implemented Apple Pay...', refers to whether or not we have switched it on in our Braintree processing settings?

@jamesrgrinter
Copy link

and, if we have a build of the app without the in-app-payment entitlement, what happens if we later turn it on at Braintree? Will the deployed apps break, or will they detect they don't have the entitlement and simply not offer that choice to the user?

@burnto
Copy link
Contributor

burnto commented Dec 19, 2014

@jamesrgrinter

I assume the comment, 'if you have not explicitly implemented Apple Pay...', refers to whether or not we have switched it on in our Braintree processing settings?

No, what this refers to is whether you have actually implemented Apple Pay in your mobile application. It requires specific code and configuration (entitlements).

and, if we have a build of the app without the in-app-payment entitlement, what happens if we later turn it on at Braintree? Will the deployed apps break, or will they detect they don't have the entitlement and simply not offer that choice to the user?

To clarify, Apple Pay is enabled via configuration in the Apple Developer Center, and the entitlement is set via Xcode in a plist that is part of the app bundle. So the entitlement is something that you enable/disable for a particular build of your app. It is not a Braintree setting.

Separate but related is your Braintree configuration of whether Apple Pay is enabled for your Braintree account. You need to enable and set up Apple Pay in your Braintree account first in order to obtain the CSR that you'll use to set up Apple Pay in the Apple Developer Center, which in turn is necessary to set up the entitlement for your app.

If you integrate via BTPaymentProvider, then v.zero will auto-detect whether Apple Pay is enabled for your Braintree account AND whether it is configured for the app and available on the device.

If you integrate via PassKit + tokenization then your code will need to handle the logic for checking whether Apple Pay is enabled or disabled for your Braintree account.

Either way though, enabling Apple Pay in your Braintree account should not affect existing deployments of your app that do not use Apple Pay.

@jerez
Copy link

jerez commented Dec 30, 2014

Hi @mickeyreiss , as @jamesrgrinter I just have received an email from apple asking for the 'Missing apple-pay feature', due to this issue:

We have begun the review of your app but aren't able to continue because we need additional information about your app.
...

  1. Does your app utilize Apple Pay? If so, please provide steps to locate this feature.

While your iTunes Connect Application State is displayed as Metadata Rejected, it is not necessary to upload a new binary. Once you reply to this message in the Resolution Center, we can proceed with your review.

I've already answered them and my app is in review now, but could you guys consider this to try to exclude this 'flag' from the lib by default somehow.

Best

@mickeyreiss
Copy link
Contributor

@jerez Thanks for the feedback. We'll work on a fix that makes it simple to exclude the PassKit code.

@mickeyreiss mickeyreiss reopened this Dec 31, 2014
@indisee
Copy link

indisee commented Jan 20, 2015

have same issue with iTC — upload build and get mail from apple. Do not use any of ApplePay set up or usage code, xcode's capabilities and developer.apple.com do not have ApplePay enabled.
Is there some workaround to prevent this warning?
Braintree (3.4.2)

@jemmons
Copy link

jemmons commented Jan 26, 2015

+1

@xinghengwang
Copy link

Is this issue getting fixed soon?
What is the work around?

@burnto
Copy link
Contributor

burnto commented Jan 28, 2015

Yes we are working on a fix and will update here shortly.

@burnto
Copy link
Contributor

burnto commented Feb 3, 2015

Hi all, apologies for the delay. We have a solution for this that we're doing some final verification on. Expect a commit and an update here soon.

@mickeyreiss
Copy link
Contributor

@burnto's fix is now on master as of e142286.

@burnto
Copy link
Contributor

burnto commented Feb 4, 2015

Starting in e142286 (which will be part of a tagged release in the next few days), Apple Pay is only part of the Braintree iOS build when the optional Braintree/Apple-Pay subspec is specified in your Podfile.

The basic tests are pretty simple, if a little coarse, and just use nm to check for symbols that look suspiciously like Apple Pay. Of course the real test is whether your app submission results in a warning, so once you get a chance to update, please let us know if you encounter further issues.

Thanks all!

@lupugabriel
Copy link

Hi everybody... i added to my podfile:

pod "Braintree"
pod "Braintree/Enable-Apple-Pay"

and i have this error:

[!] Unable to satisfy the following requirements:

  • Braintree/Enable-Apple-Pay required by Podfile

Can you help?

@burnto
Copy link
Contributor

burnto commented Feb 5, 2015

Hi @lupugabriel - as noted in #83, this was an inaccuracy in the README that I fixed in 36e90bf. Let us know if Braintree/Apple-Pay works for you, or if you have any additional issues. Thanks again for posting this problem.

@mickeyreiss
Copy link
Contributor

Closing as this is resolved in the latest release. Feel free to re-open, if you experience any continued issues with Braintree/Apple Pay.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants