hansemannn / iOS-NFC-Example

📱 Use the Core NFC API in Swift/iOS
519 stars 72 forks source link

RFID has a different error message #8

Closed alpascual closed 6 years ago

alpascual commented 7 years ago

Looks like RFID now is missing an unknown entitlement key in beta 3 Error reading RFID-Tag: Required entitlement is missing

hansemannn commented 7 years ago

I looked through the Beta 2 -> Beta 3 API changes and could not find relevant changes for the RFID-API. Apple also still does not link it in their web-docs, so I do not think they want you to use it so far. If you find a proper entitlement that actually gets accepted, let me know!

I will leave this issue open for now, thx!

alpascual commented 7 years ago

Doesn't look like Apple is sharing that information in beta 3 so far. We may have to wait until beta 4. Thanks

haemi commented 7 years ago

does this mean that it worked in beta 2 but not in beta 3?

hansemannn commented 7 years ago

Nope, neither in Beta 2 or 3

haemi commented 7 years ago

last question regrading this and RFID: does RFID in this case mean that longer distances (some ~ 10cm or so) are possible to scan or still only 0-2 cm?

hansemannn commented 7 years ago

Active RFID tags can even be used from 100m, crazy right? So yes, the RFID distance can be way longer, see this article for more infos.

haemi commented 7 years ago

but passive ones? With the iPhone?

hansemannn commented 7 years ago

The linked article will help ;-)

Passive RFID tags do not have their own power source. Instead, they are powered by the electromagnetic energy transmitted from the RFID reader. Because the radio waves must be strong enough to power the tags, passive RFID tags have a read range from near contact and up to 25 meters.

haemi commented 7 years ago

unfortunately it doesn't help; I don't know if the iPhone is strong enough to "ping" the passive token, because e.g. I tested an Android Phone which recognized the RFID tag but I had to bring it very, very close to the tag (~ 2cm)

Dalein commented 7 years ago

What about RFID in Beta 4?

hansemannn commented 7 years ago

Nope 😐. Just tried using Beta 4 - while the search dialog pops up for around a second, it then closes automatically and aborts with the error Error reading RFID-Tag: Required entitlement is missing inside the console. Does anyone know about RFID entitlements?

M0rph3v5 commented 7 years ago

no new options in the dropdown or anything?

On 25 Jul 2017, at 16:56, Hans Knöchel notifications@github.com wrote:

Nope 😐. Just tried using Beta 4 - while the search dialog pops up for around a second, it then closes automatically and aborts with the error Error reading RFID-Tag: Required entitlement is missing inside the console. Does anyone know about RFID entitlements?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/hansemannn/iOS11-NFC-Example/issues/8#issuecomment-317764497, or mute the thread https://github.com/notifications/unsubscribe-auth/AAkiTA7U2mXt9J3srcrIe1ZAkm9_YPSkks5sRgIigaJpZM4OUYqT.

hansemannn commented 7 years ago

👎 No new option, no new docs and not even an API-change (diff'd it) regarding CoreNFC from Beta 3 to 4.

ocastx commented 7 years ago

Beta 5 was just released, could not check it yet

hansemannn commented 7 years ago

No new CoreNFC changes between Beta 4 and 5 (see diff) ...

jonathanjacob commented 7 years ago

Beta 6 was released yesterday. In the release notes I see under resolved: • Reader mode utilizing NFC now works correctly on supported devices. (32721033)

was this the related radar?

dickwu commented 7 years ago

beta 6 still not work

hansemannn commented 7 years ago

Still not possible to read RFID-chips. I believe it will not be supported in iOS 11 GA, since it's all about NFC explicitly. I'll keep this issue open to track progress.

transparentmask commented 7 years ago

I did some work in current beta. I found some strings in /usr/libexec/nfcd and /usr/libexec/seld which are extracted from ipsw package. So, the RFID string in entitlement should be "ISO15693".

screen shot 2017-08-24 at 21 08 44

1

But there is a private class named "NFServiceWhitelistChecker". And it have some methods like "-[NFServiceWhitelistChecker _initCoreNFCEntitlements:]", "-[NFServiceWhitelistChecker nfcISO15693ReaderAccess]", "-[NFServiceWhitelistChecker nfcNDEFAccess]".

I also noticed, if I set "ISO15693" in entitlement, the device log will show me "Skipping a profile because of error 0xe8008012" and "entitlement '\<private>' has value not permitted by provisioning profile '\<private>'". But if I set the meaningless string "test123" in entitlement, it can pass the validation.

screen shot 2017-08-24 at 21 09 47

So, maybe the NFServiceWhitelistChecker class done an extra check so that "ISO15693", even "com.apple.developer.nfc.readersession.iso15693.tag-identifiers" can not pass the validation.

andy-fueled commented 7 years ago

I am trying to get the UID of a tag, and tried to create a NFCISO15693ReaderSession, but am also getting Error reading RFID-Tag: Required entitlement is missing. Do you have any additional info on how to get around this?

hansemannn commented 7 years ago

Coming back to this, it should obviously either be exposed by Apple properly or not be an option for developers. It cannot be that they have a public RFID API that nobody can use in a Beta 10 close to GM. Did anyone get the chance to talk to Apple about this?

transparentmask commented 7 years ago

I try with iOS 11 GM Seed & Xcode 9 GM Seed. When I setting entitlement with "ISO15693", the app can not install in my iPhone 7. And If not fill with "ISO15693", will show me "Error reading RFID-Tag: Required entitlement is missing".

So, read RFID is not allow. Just waiting someone to try with iPhone 8.

jasjukaitis commented 6 years ago

Not sure if they were too lazy to remove all the NFCISO15693 from the SDK or to extend the documentation. I also tried different entitlements, but none are working. Really frustrating. :(

hansemannn commented 6 years ago

@transparentmask Did you get an iPhone 8 to test already? Would wonder if it works there!

rtnlsltn commented 6 years ago

Couldn't get anything to read with an iPad Pro so I picked up an iPhone 7. The "ready to scan" dialogue opens up but it won't recognize any of my tags....

egcode commented 6 years ago

Tried with iPhone 8, same error: Error reading RFID-Tag: Required entitlement is missing

retroneo commented 6 years ago

How about iOS 11.1 now that it has released.

hansemannn commented 6 years ago

No CoreNFC api's added.

mozeryansky commented 6 years ago

@transparentmask Were you able to get past the entitlement issue? I added the entitlement you found but Xcode won't run the app on my phone, I get an error "The executable was signed with invalid entitlements.": The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).

transparentmask commented 6 years ago

I can not run test app with NFCISO15693 entitlements (both "ISO15693" and "com.apple.developer.nfc.readersession.iso15693.tag-identifiers").

Joohansson commented 6 years ago

iOS 11.2 on iPhone 7: Error reading RFID-Tag: Required entitlement is missing Still no successful attempts?

mozeryansky commented 6 years ago

I filed a bug on Apple about allowing NFC and they closed it as "Not to be fixed", so as far as I can tell they don't plan to support it.

hansemannn commented 6 years ago

@mozeryansky Based on that feedback, I'll close this issue for now, but will be happy to reopen it as there is progress on it in future versions of iOS. Thanks everyone for this great discussion!

kaqijiang commented 6 years ago

hopes to use this feature, sustained attention. iphone7 11.3 Error reading RFID-Tag: Required entitlement is missing

kaqijiang commented 6 years ago

Does iOS12 support RFID? Has anyone been trying?

hansemannn commented 6 years ago

Nope, these are the only iOS 12 CoreNFC changes so far. More maybe to come over the next 3 months.

jpsubbarayalu commented 5 years ago

Hi @hansemannn, Tried using iPhone 7 with iOS 11.4, Still i am getting the same error, Error reading RFID-Tag: Required entitlement is missing

kukudy commented 5 years ago

Unfortunately - I tried with 12.1.4 - same results :( Must have access to RFID!

cbrockschmidt commented 5 years ago

Some more tag types seem to be supported in iOS13, including ISO7816, ISO15693, FeliCa, and MIFARE: https://developer.apple.com/documentation/corenfc?changes=latest_minor
https://developer.apple.com/documentation/corenfc/nfctagreadersession?changes=latest_minor Has anyone already had the chance to try this?

hansemannn commented 5 years ago

@cbrockschmidt Will extend the repo this week and let you know

BadChoice commented 5 years ago

in ios13 you get this error

Use of undeclared type 'NFCISO15693ReaderSession'

Can't find if there is a new way to work with it?

BadChoice commented 5 years ago

Ok, found that now we have to use

NFCTagReaderSession(pollingOption: [.iso14443, .iso15693/*, .iso18092*/], delegate: self, queue: nil)

And add the TAG value into the entitlements too, (I commented the 18092 since seems it is not a TAG hehe)

however it doesn't seem to find my RFID tag :(

YangYouYong commented 5 years ago

@cbrockschmidt have you tried ISO15693 tag in iOS 13 ? Use the API NFCTagReaderSession(pollingOption: [.iso14443, .iso15693], delegate: self, queue: nil) can detect the ISO15693 tag . but does not support sendCustomCommandWithConfiguration:completionHandler: method