«Отсутствует требуемое право» после подключения к ID06 (ISO-DEV)IOS

Программируем под IOS
Ответить
Anonymous
 «Отсутствует требуемое право» после подключения к ID06 (ISO-DEV)

Сообщение Anonymous »

Я создал базовое приложение для iPhone для iOS 17.5, используя Xcode, где я хотел бы сканировать карту PIV (ID06) и просто войдите в систему. Я пытался как можно больше минимизировать код, но что бы я ни делал: < /p>

-[nfctagreadersession _connecttag: ошибка:]: 744 домен ошибки = Nfcerror code = 2 "отсутствующее обязательное право"
userinfo = {nslocalizedDescription = отсутствует обязательное право} < /p>
< /blockquote>
После подключения к карте .
Я перепроектировал сертификат подписи, чтобы включить опцию NFC в портал Apple Developer, а также удалил сертификат локально на моем компьютере, чтобы убедиться, что он использует последнее. Вот мой ViewController: < /p>
sstrong> viewcontroller.h

Код: Выделить всё

#import 
#import 

@interface ViewController : UIViewController 

@property (nonatomic, strong) NFCTagReaderSession *nfcSession;

@end
viewcontroller.m
#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
[self startScanning];
}

- (void)startScanning {
self.nfcSession = [[NFCTagReaderSession alloc] initWithPollingOption:NFCPollingISO14443 delegate:self queue:nil];
self.nfcSession.alertMessage = @"Hold your iPhone near the NFC tag.";
[self.nfcSession beginSession];
}

- (void)tagReaderSession:(NFCTagReaderSession *)session didDetectTags:(NSArray *)tags {
id tag = [tags firstObject];

[session connectToTag:tag completionHandler:^(NSError * _Nullable error) {
if (error != nil) {
[session invalidateSessionWithErrorMessage:@"Connection failed"];
return;
}

id iso7816Tag = [tag asNFCISO7816Tag];
NSLog(@"Connected: %@", iso7816Tag);

// FOLLOWING APDU COMMAND CAN BE REMOVED, THE RESULT IS THE SAME
NSData *readCertCommandData = [NSData dataWithBytes:(unsigned char[]){0x00, 0xB0, 0x00, 0x00, 0x10} length:5];
NFCISO7816APDU *readCertCommand = [[NFCISO7816APDU alloc] initWithInstructionClass:0x00
instructionCode:0xB0
p1Parameter:0x00
p2Parameter:0x00
data:readCertCommandData
expectedResponseLength:256];

[iso7816Tag sendCommandAPDU:readCertCommand completionHandler:^(NSData *responseData, uint8_t sw1, uint8_t sw2, NSError * _Nullable error) {
if (error) {
NSLog(@"Error sending read certificate APDU: %@", error.localizedDescription);
[self.nfcSession invalidateSessionWithErrorMessage:@"Session invalidated"];
} else {
NSLog(@"Read Certificate Response Data: %@", responseData);
NSLog(@"Status Word: %02X %02X", sw1, sw2);
[self.nfcSession invalidateSession];
}
}];
}];
}

- (void)tagReaderSessionDidBecomeActive:(NFCTagReaderSession *)session {
NSLog(@"NFC session did become active");
}

- (void)tagReaderSession:(NFCTagReaderSession *)session didInvalidateWithError:(NSError *)error {
NSLog(@"NFC session did invalidate with error: %@", error.localizedDescription);
}

@end
< /code>
, а также мои.



com.apple.developer.nfc.readersession.formats

TAG
NDEF



< /code>
и my info.plist: < /p>




NFCReaderUsageDescription
Need NFC to scan
com.apple.developer.nfc.readersession.iso7816.select-identifiers

A000000116071



< /code>
Журнал при выполнении его на моем iPhone 15 Pro Max (iOS 17.5.1): < /p>
NFC session did become active
-[NFCTagReaderSession _connectTag:error:]:744 Error Domain=NFCError Code=2 "Missing required entitlement"
UserInfo={NSLocalizedDescription=Missing required entitlement}
Connected:
Error sending read certificate APDU: Session invalidated
NFC session did invalidate with error: Session invalidated by user
< /code>
Итак, вопрос в том, почему она подключается к карте, но затем сразу же признает сеанс? из идей!


Подробнее здесь: https://stackoverflow.com/questions/785 ... 06-iso-dev
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»