I am fallowing the steps mention here
https://developer.apple.com/wallet/get-started-with-verify-with-wallet/
and https://developer.apple.com/documentation/passkit/requesting-identity-data-from-a-wallet-pass
to run a POC in simulator but I am getting a crash
DigitalPresentmentSession requestDocument fatal error from xpc: This app has crashed because it called an API it is not entitled to use.
:0: Fatal error: This app has crashed because it called an API it is not entitled to use.
Wallet
RSS for tagDiscuss how to manage tickets, boarding passes, payment cards and other passes in the Wallet app.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi all,
I'm working on a use case where a customer checks in at a point of service (e.g., a cafeteria or restaurant) using their Apple Wallet pass (e.g., a digital employee badge).
In this scenario, we would like to use an iPhone (with a custom iOS app) as the NFC terminal to read the pass directly from the customer's iPhone over NFC.
I’m aware that "Tap to Pay on iPhone" allows NFC-based payment acceptance, but it’s unclear if similar functionality is available or permitted for reading access-type passes from another iPhone via NFC.
Key questions:
Is it technically possible for an iPhone to act as an NFC reader for a Wallet pass on another iPhone?
If not, is this restricted due to Secure Element isolation or protocol limitations?
Is there any Apple-supported path for building such a solution — or is certified external hardware (e.g., HID, Wavelynx) the only option?
I’ve reviewed the Core NFC and PassKit documentation but couldn't find a definitive answer.
Thanks in advance for your clarification!
We are implementing a feature that uses PKPassLibrary.requestAutomaticPassPresentationSuppression to prevent the Wallet from appearing when unlocking a lock. We have already completed the approval process for the entitlement to enable Pass Presentation Suppression.
In most cases, our code snippet works as expected, and the result is .success. However, we are also encountering other results, such as .denied, .alreadyPresenting, and .cancelled or .notSupported, which cause the Wallet to appear for users.
Here's the code snippet we're using:
PKPassLibrary.requestAutomaticPassPresentationSuppression { result in
logger.log(
.info,
"PKPassLibrary suppression result: \(result.description)",
LogContext.homeFeature
)
}
I would appreciate clarification on the following points:
What's the meaning of each result type (.denied, .alreadyPresenting, .cancelled, .notSupported) beyond what is mentioned in the documentation? The documentation here does not provide additional details.
What is the recommended handling for these specific result states? Should we be taking different actions or retries based on each case?
Thank you very much for your help.
Best, Ramiro.