When connect to the NFC Desfire card use this function to send apdu:
- (void)sendMiFareISO7816Command:(NFCISO7816APDU *)apdu
completionHandler:(void(^)(NSData *responseData, uint8_t sw1, uint8_t sw2, NSError * _Nullable error))completionHandler API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(watchos, macos, tvos);
For these commands worked as well:
static int const kSelectApplication = 0x5a;
static int const kContinue = 0xaf;
static int const kAuthenticate = 0x0a;
static int const kReadData = 0xbd;
static int const kFormatPicc = 0xfc;
static int const kGetManufaturingData = 0x60;
static int const kChangeKey = 0xc4;
static int const kNoChanges = 0x0C;
But except :
static int const kWriteData = 0x3d;
Here is my data for send:
903D000037010000003000008A7CD69F147025696C6559E01F84177D5A0CBDF3D65ECDF08F657405ABFB0A9AF79209D8DD63B035FC0437CBC41277D700
With about 60 seconds later receive this:
[CoreNFC] -[NFCTagReaderSession transceive:tagUpdate:error:]:879 Error Domain=NFCError Code=202 "XPC Error" UserInfo={NSLocalizedDescription=XPC Error, NSUnderlyingError=0x283af0bd0 {Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}}}
So what's the problem with command 0x3d? Which works very well on android.