Для чтения файлов с помощью UIDocumentPickerViewController в приложении Ma c Catalyst требуется право на чтение / запись? - PullRequest
1 голос
/ 11 марта 2020

У меня есть этот код в UIViewController, который подтверждает UIDocumentPickerDelegate:

- (void)openTextFilePicker {
    NSArray *UTIs = [NSArray arrayWithObjects:@"public.text", nil];
    [self openFilePicker:UTIs];
}

- (void)openFilePicker:(NSArray *)UTIs {
    UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:UTIs inMode:UIDocumentPickerModeImport];
    documentPicker.delegate = self;
    documentPicker.popoverPresentationController.barButtonItem = self.importButton;
    [self presentViewController:documentPicker animated:TRUE completion:nil];
}

- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURLs:(NSArray<NSURL *> *)urls {
    [self documentPicker:controller didPickDocumentAtURL:[urls firstObject]];
}

- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url {
    NSLog(@"picked document %@", url);
}

- (void)documentPickerWasCancelled:(UIDocumentPickerViewController *)controller {
    NSLog(@"cancelled");
}

Это позволяет пользователям выбирать файл в любом месте своей системы и импортировать его содержимое в приложение. Это работает, если у меня в App Sandbox> User Selected File установлена ​​опция Read / Write. Но я только читаю данные из файла, мне не нужно обновлять файл или сохранять что-либо вне песочницы. Поэтому я изменил возможность на «Только чтение», но затем я получаю эту ошибку в консоли, и didPickDocumentsAtURLs не вызывается:

Не удалось создать FPSandboxingURLWrapper для [путь]. Ошибка: Ошибка Domain = NSPOSIXErrorDomain Code = 1 «не удалось выдать расширение песочницы com.apple.app-sandbox.read-write для« [путь] »: операция не разрешена»

Похоже правильно, или я должен иметь возможность читать файлы только с правом «Только чтение»? При необходимости достаточно легко переключить его на чтение / запись, но моя первая заявка была отклонена из-за использования ненужных прав, и я хочу быть готовым объяснить это группе проверки, если это действительно необходимо.

1 Ответ

0 голосов
/ 20 марта 2020

Я пошел дальше и изменил право на чтение / запись и отправил его с примечанием в поле «Информация о изолированной программной среде приложения», объясняющим, как используется доступ к файлу. Приложение было одобрено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...