Hi everyone,
I am working on creating an NFC-enabled Apple Wallet pass but have been unable to get the NFC functionality to work. While the pass itself adds to Wallet without issues, the NFC feature does not activate.
Here’s a summary of what I’ve done:
1. Developer Setup:
Registered a Pass Type ID in my Apple Developer account.
Generated and installed the Pass Type ID certificate.
Installed the latest WWDR certificate.
2. Pass JSON Configuration:
My pass.json file includes the following NFC configuration:
"nfc": {
"message": "Tap to unlock door",
"encryptionPublicKey": "MY_ENCRYPTION_PUBLIC_KEY",
"payload": "encrypted_nfc_payload"
}
3. Testing Results:
When the pass includes the nfc field, it adds to Wallet but NFC does not work.
If I remove the nfc field, the pass works fine (minus NFC, of course).
What I Need Help With:
1. A step-by-step guide for correctly implementing NFC in Wallet passes, including details about encryption, key generation, and any additional setup steps.
2. Information on whether there are specific device or iOS version requirements for NFC-enabled passes.
If there are any prerequisites or specific configurations I might be missing, please let me know. I’d really appreciate detailed guidance or resources that could help resolve this issue.
Thank you!
Post
Replies
Boosts
Views
Activity
Hello Apple Developer Team/Community,
I am working on developing an Apple Wallet pass with NFC functionality for our electric vehicle (EV) charging stations. The goal is to enable a "tap-to-start charging" feature, providing a seamless and efficient experience for users. However, my request for an NFC certificate to enable this functionality has been rejected.
Here is a summary of my use case and actions taken so far:
1. Use Case:
The Wallet pass will allow users to initiate charging sessions by tapping their iPhones or Apple Watches on the EV charger.
This feature aims to simplify the process by eliminating the need for additional apps, physical cards, or manual inputs.
It enhances accessibility and aligns with Apple’s goals of providing users with secure and convenient solutions.
2. Steps Taken:
Submitted the NFC certificate request with a detailed explanation of the functionality.
Included diagrams and supporting documents demonstrating the workflow and system readiness.
Received a rejection without clear guidance on how to address the issue.
3. Technical Readiness:
Our backend is fully prepared to support NFC passes, including secure processing of tap events and payload encryption.
The Wallet pass has been configured to include the nfc field with the required encryptionPublicKey.
Request for Assistance:
Could you provide guidance on improving my application to meet Apple’s criteria for NFC certificates?
Are there specific requirements or examples of successful NFC-enabled Wallet pass applications that I can use as a reference?
If anyone has faced a similar rejection, what steps did you take to get approval?
Additional Information:
Use case: EV charging stations
NFC functionality: Tap-to-start charging session
Current implementation: Pass is functional without NFC but requires NFC for seamless operation.
Any advice or resources to help resolve this issue would be greatly appreciated. Thank you for your time and support.
Best regards,
DeveloperSquillion
Hello,
I am working on an Apple Wallet pass with NFC functionality but have been facing issues with getting it to work. The pass gets added to Wallet, but the NFC feature does not seem to activate.
Could someone provide a detailed, step-by-step process to properly enable NFC in an Apple Wallet pass? Here is what I have done so far:
1. Set up a Pass Type ID and Certificates:
I have registered a Pass Type ID in my Apple Developer account.
I have generated and installed the required certificates (Pass Type ID certificate and WWDR certificate).
2. Adding the NFC Field:
Added the following nfc field to my pass.json file:
{
"formatVersion": 1,
"passTypeIdentifier": "pass.com.example.mypass",
"serialNumber": "123456",
"teamIdentifier": "TEAMID12345",
"webServiceURL": "https://example.com/api/passes",
"authenticationToken": "my_secure_token",
"nfc": {
"message": "Tap to unlock door",
"encryptionPublicKey": "MY_ENCRYPTION_PUBLIC_KEY",
"payload": "encrypted_nfc_payload"
},
"organizationName": "My Company",
"description": "NFC-Enabled Access Pass",
"logoText": "My NFC Pass",
"foregroundColor": "rgb(255, 255, 255)",
"backgroundColor": "rgb(0, 0, 0)",
"barcode": {
"format": "PKBarcodeFormatQR",
"message": "https://example.com",
"messageEncoding": "iso-8859-1"
}
}
3. Tested the Pass:
The pass is added to Wallet, but NFC functionality is not working.
When the nfc field is removed, the pass works fine without NFC.
Questions:
1. Could you provide a comprehensive list of required steps to enable NFC in an Apple Wallet pass, including any specific details on encryption, payload, and public key formatting?
2. Are there any additional configurations or settings that I might be missing?
3. Is there any official documentation or specific tools recommended for testing NFC-enabled passes?
Any guidance or solutions to enable NFC in this pass would be greatly appreciated.
Thank You
Hello,
I’m working on creating an NFC-enabled Apple Wallet pass and I need assistance with the proper implementation of the pass.json file to include NFC functionality. My goal is to enable NFC interactions, such as tapping to unlock a door or interacting with other NFC systems.
Here is what I have done so far:
Set up a Pass Type ID and Certificates:
I have registered a Pass Type ID in my Apple Developer account.
I have generated and installed the required certificates (Pass Type ID certificate and WWDR certificate).
Backend Integration:
I have set up a backend service for generating passes, and I can successfully create and deliver standard Wallet passes without the NFC functionality.
Adding the NFC Field:
I understand that to enable NFC interactions, I need to add an nfc dictionary to the pass.json file.
The key components for NFC include the encryptionPublicKey, message, and payload.
Here’s an example of my current pass.json:
{
"formatVersion": 1,
"passTypeIdentifier": "pass.com.example.mypass",
"serialNumber": "123456",
"teamIdentifier": "TEAMID12345",
"webServiceURL": "https://example.com/api/passes",
"authenticationToken": "my_secure_token",
"nfc": {
"message": "Tap to unlock door",
"encryptionPublicKey": "MY_ENCRYPTION_PUBLIC_KEY",
"payload": "encrypted_nfc_payload"
},
"organizationName": "My Company",
"description": "NFC-Enabled Access Pass",
"logoText": "My NFC Pass",
"foregroundColor": "rgb(255, 255, 255)",
"backgroundColor": "rgb(0, 0, 0)",
"barcode": {
"format": "PKBarcodeFormatQR",
"message": "https://example.com",
"messageEncoding": "iso-8859-1"
}
}
Questions:
Are there any additional steps or configurations required to ensure that NFC is enabled in the pass?
Is there a specific method to test or validate NFC functionality in the pass to debug why it’s not being activated?
Any guidance or solutions to enable NFC in this pass would be greatly appreciated.
Thank You
Hello,
I am developing an application that involves writing data to RFID tags using NFC (ISO/IEC 14443A/B, Mifare, and FeliCa standards) for an electric vehicle charging station. However, I am consistently facing an issue where the Apple Wallet app is automatically triggered during NFC operations on iOS. This problem occurs every time I attempt to write data to the RFID tags, preventing the application from properly detecting or interacting with the NFC tags.
Here are the key details of the issue:
Device: iPhone (tested on various models and iOS versions)
Issue: Apple Wallet automatically opens during NFC tag writing operations.
Expected Behavior: My application should write data to RFID tags without triggering Apple Wallet.
RFID Standards: ISO/IEC 14443A/B, Mifare, FeliCa.
Code Implementation: I am using the Core NFC framework and NFCISO14443ReaderSession to communicate with the RFID tags. The same code works seamlessly with Android devices, but iOS continuously triggers the Wallet app.
Here’s a brief code snippet that demonstrates the problem:
import CoreNFC
func startNFCSession() {
let session = NFCISO14443ReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)
session?.alertMessage = "Hold your iPhone near the NFC tag."
session?.begin()
}
func readerSession(_ session: NFCISO14443ReaderSession, didDetect tags: [NFCISO14443Tag]) {
guard let tag = tags.first else { return }
session.connect(to: tag) { (error: Error?) in
if let error = error {
session.invalidate(errorMessage: "Connection failed: \(error.localizedDescription)")
return
}
// Write data to the tag here
// The Wallet app opens instead of allowing data writing.
}
}
I've taken steps to ensure that I am not using NDEF tags, as I understand that may interfere with the Wallet functionality. Despite using the lower-level NFCISO14443ReaderSession API, the issue persists.
I’ve also tried disabling all Wallet settings on the device, but the problem still occurs. Additionally, no such issues are experienced on Android devices with similar functionality, so it appears to be an iOS-specific problem.
Is there a way to prevent Apple Wallet from being triggered when using Core NFC to interact with RFID tags?
Any assistance or guidance on how to solve this issue would be greatly appreciated, as this is a critical feature for the functionality of the electric vehicle charging station system we are building.
Thank you in advance!
When I am trying Write Virtual NFC from my iOS app the wallet app is open everytime. I just want to write the NFC tag data to RFID reader please help me with that.