[TAPLink SDK IOS] Error: ApplicationId [appId] must be 3 bytes long

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[TAPLink SDK IOS] Error: ApplicationId [appId] must be 3 bytes long

3,293 Views
SamanaGG
Contributor I

Hello, I have read your guide UG10045 and I have successfully integrated the Taplink iOS SDK in a demo Project.

 

In section 5.2 you describe the selection and change of applications.

I am interested because I want to use EV3 Card features.

 

So I tried to do a creation and selection of a specific application, with appId = [0x11, 022, 0x33]

As reference, I do the same operations on a Android App using the TApLink SDK Android; in Android enviroment everything goes smoothly.

 

I report my code

       //var desfire = TLLibraryManager.shared().getDESFireEV3Instance()

        desfire.selectApplicationPICCP1 { selectedPICCOK in

            let text = "Selected PICC: \(selectedPICCOK)"

            os_log("Internal Log  - %{public}@", log: OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "DemoLog"), type: .error, text)


            let settings = CreateAppSettingsModel()

            settings.appKeySettingChangable = true

            settings.masterKeyInterchangable = true

            settings.authRequiredForFileManagement = false

            settings.authRequiredForFileConfiguration = false

            settings.keyType = .AES128

            

            desfire.createApplication(withAppID: self.appId, withNumberOfBytes: 16, withAppSettings: settings) { createdOK in

                let text = "CREATED Application: \(createdOK)"

                os_log("Internal Log  - %{public}@", log: OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "DemoLog"), type: .error, text)

                

                desfire.selectApplication(withAppID: self.appId, withNumberOfBytes: 16) { selectedOK in

                    let text = "SELECTED Application: \(createdOK)"

                    os_log("Internal Log  - %{public}@", log: OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "DemoLog"), type: .error, text)

 

I initialize the appId in this way:

private let appId: Int32 = 0x112233

 

That seems to generate strange errors; I received this from library:

com.nxp.nfclib.exceptions.UsageException: Application ID [appId] must be 3 bytes

but the appId is indeed 3 bytes!

 

I attach complete logs.

I hope you can help me to resolve this.

Labels (2)
0 Kudos
Reply
5 Replies

3,271 Views
Fabian_R
NXP TechSupport
NXP TechSupport

Hello sir,
I would like to try a couple of things.
1.- After creating the application using iOS, please test if the application can be correctly selected on Android.
2.- It would also be quite helpful to check if the application ID in desfire.selectApplication(), but the endianness as LSB instead of MSB.

If both of these recommendations aren't working, please be sure you are using the latest TapLinx version for iOS and share your setup as well.
One more thing, are you able to select the PICC as application 0x000000 in iOS?

Best Regards,
Fabian
0 Kudos
Reply

3,202 Views
SamanaGG
Contributor I

Question: Can the problem be SDK requiring appId to be a Int32 type?

 

If i have a Int32 value, when I convert it to a bytes array, I obtain a 4-bytes array.

Can you check if on SDK iOS 3.0.0 this thing is considered inside 'createApplication' method?

 

P.s: when I try to select a application different from 0x000000, I see from SDK logs:

Command sent to card : 5A112233

so, for what I can see, it seems that 'selectApplication' is instead working as expected.

 

Thank you in advance

0 Kudos
Reply

939 Views
Fabian_R
NXP TechSupport
NXP TechSupport

Hello, Sorry for the delay answering.

Could you please try the following:

let piccAid = Data([0x00, 0x00, 0x00])

Then, you need to pass the Data to the actual Select command.

 

Best Regards,
Fabian
0 Kudos
Reply

3,241 Views
SamanaGG
Contributor I

After reading your reply, I also tried appId = 0x332211, but nothing

The appId I used in createApplication and selectedApplication is the same.

 

I confirm I have the latest latest TapLinx version for iOS, 3.0.0

I confirm I am able to select the PICC as application 0x000000 in iOS, using selectApplication method

 

I see this interesting post: https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/iOS-SDK-Creating-an-application-fails-because... 

Can that help you?

 

After reading that post, I then tried to set 'numberOfBytes" to value  "3" instead of "16" and I made this discovery:

'numberOfBytes" set to value  "16" --> Library return 

"com.nxp.nfclib.exceptions.UsageException: Application ID [appId] must be 3 bytes"

'numberOfBytes" set to value different to "16" --> Library return "com.nxp.nfclib.exceptions.PICCException: Parameter Error SW2 = -98"

 

Does It make any sense to you?

 

 

P.s.: I see there is a method "getApplicationIDs"

**

 * Returns the application identifiers of all active applications on a PICC.

 * @param completion returns true or false

 *

 */

- (void)getApplicationIDsOnCompletion:(completionBlockWithResult)completion;

 

I think that it will great if in future releases if this method does what it is described to do instead of returning a boolean

 

I also tried to call this method before the createApplication method; nothing changes.

 

 

0 Kudos
Reply

3,233 Views
SamanaGG
Contributor I

P.s.: Referring to LSB endianess:

I tried different ways to convert a 3-bytes array into Int32, without success

 

Do you know if there is a method "createApplication"\"selectedApplication" that accept directly a Uint8 array, instead of Int32 type?

Or maybe, can you give me an example of conversion that I have to use to make this cast work with mentioned methods?

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2324496%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%5BTAPLink%20SDK%20IOS%5D%20Error%3A%20ApplicationId%20%5BappId%5D%20must%20be%203%20bytes%20long%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2324496%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%2C%20I%20have%20read%20your%20guide%26nbsp%3BUG10045%20and%20I%20have%20successfully%20integrated%20the%20Taplink%20iOS%20SDK%20in%20a%20demo%20Project.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EIn%20section%205.2%20you%20describe%20the%20selection%20and%20change%20of%20applications.%3C%2FP%3E%3CP%3EI%20am%20interested%20because%20I%20want%20to%20use%20EV3%20Card%20features.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ESo%20I%20tried%20to%20do%20a%20creation%20and%20selection%20of%20a%20specific%20application%2C%20with%20appId%20%3D%20%5B0x11%2C%20022%2C%200x33%5D%3C%2FP%3E%3CP%3EAs%20reference%2C%20I%20do%20the%20same%20operations%20on%20a%20Android%20App%20using%20the%20TApLink%20SDK%20Android%3B%20in%20Android%20enviroment%20everything%20goes%20smoothly.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EI%20report%20my%20code%3C%2FP%3E%3CPRE%3E%3CSPAN%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FSPAN%3E%2F%2Fvar%20desfire%20%3D%20TLLibraryManager.shared().getDESFireEV3Instance()%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Edesfire%3C%2FSPAN%3E.selectApplicationPICCP1%20%7B%20selectedPICCOK%20%3CSPAN%3E%3CSTRONG%3Ein%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3E%3CSTRONG%3Elet%3C%2FSTRONG%3E%3C%2FSPAN%3E%20text%20%3D%20%3CSPAN%3E%22Selected%20PICC%3A%20%3C%2FSPAN%3E%5C(selectedPICCOK)%3CSPAN%3E%22%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eos_log%3C%2FSPAN%3E(%3CSPAN%3E%22Internal%20Log%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%3C%2FSPAN%3E-%20%25%7Bpublic%7D%40%22%3C%2FSPAN%3E%2C%20%3CSPAN%3Elog%3C%2FSPAN%3E%3A%20OSLog(subsystem%3A%20%3CSPAN%3EBundle%3C%2FSPAN%3E.%3CSPAN%3Emain%3C%2FSPAN%3E.%3CSPAN%3EbundleIdentifier%3C%2FSPAN%3E!%2C%20category%3A%20%3CSPAN%3E%22DemoLog%22%3C%2FSPAN%3E)%2C%20%3CSPAN%3Etype%3C%2FSPAN%3E%3A%20.%3CSPAN%3Eerror%3C%2FSPAN%3E%2C%20text)%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3E%3CSTRONG%3Elet%3C%2FSTRONG%3E%3C%2FSPAN%3E%20settings%20%3D%20CreateAppSettingsModel()%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3Esettings.appKeySettingChangable%20%3D%20%3CSPAN%3E%3CSTRONG%3Etrue%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3Esettings.masterKeyInterchangable%20%3D%20%3CSPAN%3E%3CSTRONG%3Etrue%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3Esettings.authRequiredForFileManagement%20%3D%20%3CSPAN%3E%3CSTRONG%3Efalse%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3Esettings.authRequiredForFileConfiguration%20%3D%20%3CSPAN%3E%3CSTRONG%3Efalse%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3Esettings.keyType%20%3D%20.AES128%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Edesfire%3C%2FSPAN%3E.createApplication(withAppID%3A%20%3CSPAN%3E%3CSTRONG%3Eself%3C%2FSTRONG%3E%3C%2FSPAN%3E.%3CSPAN%3EappId%3C%2FSPAN%3E%2C%20withNumberOfBytes%3A%20%3CSPAN%3E16%3C%2FSPAN%3E%2C%20withAppSettings%3A%20settings)%20%7B%20createdOK%20%3CSPAN%3E%3CSTRONG%3Ein%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3E%3CSTRONG%3Elet%3C%2FSTRONG%3E%3C%2FSPAN%3E%20text%20%3D%20%3CSPAN%3E%22CREATED%20Application%3A%20%3C%2FSPAN%3E%5C(createdOK)%3CSPAN%3E%22%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eos_log%3C%2FSPAN%3E(%3CSPAN%3E%22Internal%20Log%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%3C%2FSPAN%3E-%20%25%7Bpublic%7D%40%22%3C%2FSPAN%3E%2C%20%3CSPAN%3Elog%3C%2FSPAN%3E%3A%20OSLog(subsystem%3A%20%3CSPAN%3EBundle%3C%2FSPAN%3E.%3CSPAN%3Emain%3C%2FSPAN%3E.%3CSPAN%3EbundleIdentifier%3C%2FSPAN%3E!%2C%20category%3A%20%3CSPAN%3E%22DemoLog%22%3C%2FSPAN%3E)%2C%20%3CSPAN%3Etype%3C%2FSPAN%3E%3A%20.%3CSPAN%3Eerror%3C%2FSPAN%3E%2C%20text)%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Edesfire%3C%2FSPAN%3E.selectApplication(withAppID%3A%20%3CSPAN%3E%3CSTRONG%3Eself%3C%2FSTRONG%3E%3C%2FSPAN%3E.%3CSPAN%3EappId%3C%2FSPAN%3E%2C%20withNumberOfBytes%3A%20%3CSPAN%3E16%3C%2FSPAN%3E)%20%7B%20selectedOK%20%3CSPAN%3E%3CSTRONG%3Ein%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3E%3CSTRONG%3Elet%3C%2FSTRONG%3E%3C%2FSPAN%3E%20text%20%3D%20%3CSPAN%3E%22SELECTED%20Application%3A%20%3C%2FSPAN%3E%5C(createdOK)%3CSPAN%3E%22%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3Eos_log%3C%2FSPAN%3E(%3CSPAN%3E%22Internal%20Log%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%20%3C%2FSPAN%3E-%20%25%7Bpublic%7D%40%22%3C%2FSPAN%3E%2C%20%3CSPAN%3Elog%3C%2FSPAN%3E%3A%20OSLog(subsystem%3A%20%3CSPAN%3EBundle%3C%2FSPAN%3E.%3CSPAN%3Emain%3C%2FSPAN%3E.%3CSPAN%3EbundleIdentifier%3C%2FSPAN%3E!%2C%20category%3A%20%3CSPAN%3E%22DemoLog%22%3C%2FSPAN%3E)%2C%20%3CSPAN%3Etype%3C%2FSPAN%3E%3A%20.%3CSPAN%3Eerror%3C%2FSPAN%3E%2C%20text)%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3EI%20initialize%20the%20appId%20in%20this%20way%3A%3C%2FP%3E%3CP%3E%3CSTRONG%3Eprivate%3C%2FSTRONG%3E%20%3CSTRONG%3Elet%3C%2FSTRONG%3E%20%3CSPAN%3EappId%3C%2FSPAN%3E%3CSPAN%3E%3A%20%3C%2FSPAN%3E%3CSPAN%3EInt32%3C%2FSPAN%3E%3CSPAN%3E%20%3D%20%3C%2FSPAN%3E%3CSPAN%3E0x112233%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3EThat%20seems%20to%20generate%20strange%26nbsp%3Berrors%3B%20I%20received%20this%20from%20library%3A%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3Ecom.nxp.nfclib.exceptions.UsageException%3A%20Application%20ID%20%5BappId%5D%20must%20be%203%20bytes%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3Ebut%20the%20appId%20is%20indeed%203%20bytes!%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EI%20attach%20complete%20logs.%3C%2FP%3E%3CP%3EI%20hope%20you%20can%20help%20me%20to%20resolve%20this.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2324496%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3ECode%20examples%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EExample%20code%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2324549%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20%5BTAPLink%20SDK%20IOS%5D%20Error%3A%20ApplicationId%20%5BappId%5D%20must%20be%203%20bytes%20long%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2324549%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20sir%2C%3CBR%20%2F%3EI%20would%20like%20to%20try%20a%20couple%20of%20things.%3CBR%20%2F%3E1.-%20After%20creating%20the%20application%20using%20iOS%2C%20please%20test%20if%20the%20application%20can%20be%20correctly%20selected%20on%20Android.%20%3CBR%20%2F%3E2.-%20It%20would%20also%20be%20quite%20helpful%20to%20check%20if%20the%20application%20ID%20in%20desfire.selectApplication()%2C%20but%20the%20endianness%20as%20LSB%20instead%20of%20MSB.%3CBR%20%2F%3E%3CBR%20%2F%3EIf%20both%20of%20these%20recommendations%20aren't%20working%2C%20please%20be%20sure%20you%20are%20using%20the%20latest%20TapLinx%20version%20for%20iOS%20and%20share%20your%20setup%20as%20well.%3CBR%20%2F%3EOne%20more%20thing%2C%20are%20you%20able%20to%20select%20the%20PICC%20as%20application%200x000000%20in%20iOS%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2324866%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20%5BTAPLink%20SDK%20IOS%5D%20Error%3A%20ApplicationId%20%5BappId%5D%20must%20be%203%20bytes%20long%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2324866%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EP.s.%3A%20Referring%20to%20LSB%20endianess%3A%3C%2FP%3E%3CP%3EI%20tried%20different%20ways%20to%20convert%20a%203-bytes%20array%20into%20Int32%2C%20without%20success%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EDo%20you%20know%20if%20there%20is%20a%20method%20%22createApplication%22%5C%22selectedApplication%22%20that%20accept%20directly%20a%20Uint8%20array%2C%20instead%20of%20Int32%20type%3F%3C%2FP%3E%3CP%3EOr%20maybe%2C%20can%20you%20give%20me%20an%20example%20of%20conversion%20that%20I%20have%20to%20use%20to%20make%20this%20cast%20work%20with%20mentioned%20methods%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2324841%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20%5BTAPLink%20SDK%20IOS%5D%20Error%3A%20ApplicationId%20%5BappId%5D%20must%20be%203%20bytes%20long%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2324841%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EAfter%20reading%20your%20reply%2C%20I%20also%20tried%20appId%20%3D%200x332211%2C%20but%20nothing%3C%2FP%3E%3CP%3EThe%20appId%20I%20used%20in%20createApplication%20and%20selectedApplication%20is%20the%20same.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EI%20confirm%20I%20have%20the%20latest%26nbsp%3B%3CSPAN%3Elatest%20TapLinx%20version%20for%20iOS%2C%203.0.0%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EI%20confirm%20I%20am%20able%20to%20select%20the%20PICC%20as%20application%200x000000%20in%20iOS%2C%20using%20selectApplication%20method%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3EI%20see%20this%20interesting%20post%3A%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FTapLinx-SDK-TagWriter-and%2FiOS-SDK-Creating-an-application-fails-because-of-appId-not-being%2Fm-p%2F2089418%22%20target%3D%22_self%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2FTapLinx-SDK-TagWriter-and%2FiOS-SDK-Creating-an-application-fails-because-of-appId-not-being%2Fm-p%2F2089418%3C%2FA%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3ECan%20that%20help%20you%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EAfter%20reading%20that%20post%2C%20I%20then%20tried%20to%20set%20'numberOfBytes%22%20to%20value%20%26nbsp%3B%223%22%20instead%20of%20%2216%22%20and%20I%20made%20this%20discovery%3A%3C%2FP%3E%3CP%3E'numberOfBytes%22%20set%20to%20value%20%26nbsp%3B%2216%22%20--%26gt%3B%20Library%20return%26nbsp%3B%3C%2FP%3E%3CP%3E%3CSTRONG%3E%22com.nxp.nfclib.exceptions.UsageException%3A%20Application%20ID%20%5BappId%5D%20must%20be%203%20bytes%3C%2FSTRONG%3E%22%3C%2FP%3E%3CP%3E'numberOfBytes%22%20set%20to%20value%20different%20to%20%2216%22%20--%26gt%3B%20Library%20return%20%22%3CSTRONG%3Ecom.nxp.nfclib.exceptions.PICCException%3A%20Parameter%20Error%20SW2%20%3D%20-98%3C%2FSTRONG%3E%22%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EDoes%20It%20make%20any%20sense%20to%20you%3F%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CP%3EP.s.%3A%20I%20see%20there%20is%20a%20method%20%22getApplicationIDs%22%3C%2FP%3E%3CPRE%3E**%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%3C%2FSPAN%3E*%3C%2FSPAN%3E%20Returns%20the%20application%20identifiers%20of%20all%20active%20applications%20on%20a%20PICC.%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%3C%2FSPAN%3E*%3C%2FSPAN%3E%20%3CSPAN%3E%3CSTRONG%3E%40param%20%3C%2FSTRONG%3E%3C%2FSPAN%3E%3CSPAN%3Ecompletion%3C%2FSPAN%3E%20returns%20true%20or%20false%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%3C%2FSPAN%3E*%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22%22%3E%26nbsp%3B%3C%2FSPAN%3E*%2F%3CBR%20%2F%3E%3CBR%20%2F%3E-%20(%3CSPAN%3E%3CSTRONG%3Evoid%3C%2FSTRONG%3E%3C%2FSPAN%3E)getApplicationIDsOnCompletion%3A(completionBlockWithResult)completion%3B%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3EI%20think%20that%20it%20will%20great%20if%20in%20future%20releases%20if%20this%20method%20does%20what%20it%20is%20described%20to%20do%20instead%20of%20returning%20a%20boolean%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EI%20also%20tried%20to%20call%20this%20method%20before%20the%20createApplication%20method%3B%20nothing%20changes.%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2325521%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20%5BTAPLink%20SDK%20IOS%5D%20Error%3A%20ApplicationId%20%5BappId%5D%20must%20be%203%20bytes%20long%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2325521%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EQuestion%3A%20Can%20the%20problem%20be%20SDK%20requiring%20appId%20to%20be%20a%20Int32%20type%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EIf%20i%20have%20a%20Int32%20value%2C%20when%20I%20convert%20it%20to%20a%20bytes%20array%2C%20I%20obtain%20a%204-bytes%20array.%3C%2FP%3E%3CP%3ECan%20you%20check%20if%20on%20SDK%20iOS%203.0.0%20this%20thing%20is%20considered%20inside%20'createApplication'%20method%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EP.s%3A%20when%20I%20try%20to%20select%20a%20application%20different%20from%200x000000%2C%20I%20see%20from%20SDK%20logs%3A%3C%2FP%3E%3CP%3E%3CSTRONG%3ECommand%20sent%20to%20card%20%3A%205A112233%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3Eso%2C%20for%20what%20I%20can%20see%2C%20it%20seems%20that%20'selectApplication'%20is%20instead%20working%20as%20expected.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EThank%20you%20in%20advance%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2335422%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20%5BTAPLink%20SDK%20IOS%5D%20Error%3A%20ApplicationId%20%5BappId%5D%20must%20be%203%20bytes%20long%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2335422%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3EHello%2C%20Sorry%20for%20the%20delay%20answering.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3ECould%20you%20please%20try%20the%20following%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3Elet%20piccAid%20%3D%20Data(%5B0x00%2C%200x00%2C%200x00%5D)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EThen%2C%20you%20need%20to%20pass%20the%20Data%20to%20the%20actual%20Select%20command.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E