Я использую XCode 8 и тестирую iOS 10.2 Beta.
Я добавил в проект фреймворки Photos, PhotosUI и MobileCoreServices.
Очень простой код:
#import <Photos/Photos.h>
#import <PhotosUI/PhotosUI.h>
#import <MobileCoreServices/MobileCoreServices.h>
@interface ViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate, PHLivePhotoViewDelegate>
@property (strong, nonatomic) IBOutlet UIImageView *imageview;
@end
и реализация:
- (IBAction)grab:(UIButton *)sender{
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.allowsEditing = NO;
picker.delegate = self;
// make sure we include Live Photos (otherwise we'll only get UIImages)
NSArray *mediaTypes = @[(NSString *)kUTTypeImage, (NSString *)kUTTypeLivePhoto];
picker.mediaTypes = mediaTypes;
// bring up the picker
[self presentViewController:picker animated:YES completion:nil];
}
Как только я нажимаю на кнопку, приложение вылетает с очень бесполезной ошибкой:
[access] <private>
Вот и все. Ничего больше.
Используя операторы break, кажется, что приложение вылетает на «presentViewController».
Это совершенно новое приложение, и у меня в пользовательском интерфейсе нет ничего, кроме кнопки захвата.
Кроме того, при тестировании на iOS 9.3 это нормально работает. Мне не хватает чего-то, что можно было бы изменить в iOS 10?
Ответы:
Возможно, вам потребуется поместить описание NSPhotoLibraryUsageDescription в свой список. подобно
Ознакомьтесь со всеми описаниями использования здесь .
источник
В iOS10, прежде чем вы получите доступ к конфиденциальным данным, таким как камера, контакты и т. Д., Вы должны запросить авторизацию, иначе ваше приложение выйдет из строя при доступе к ним. Затем Xcode будет регистрировать как:
Как с этим бороться?
Откройте файл в своем проекте с именем
info.plist
, щелкните его правой кнопкой мыши, откройте какSource Code
и вставьте в него этот код ниже. Или вы можете открытьinfo.plist
какProperty List
по умолчанию, нажмите кнопку добавления, Xcode предложит вамPrivacy -
варианты завершения при вводе с помощью клавиатуры ⬆️ и ⬇️.Не забудьте написать свое описание, почему вы запрашиваете эту авторизацию, между
<string>
и</string>
, иначе ваше приложение будет отклонено Apple:Если не работает, попробуйте запросить фоновую авторизацию:
Или перейдите по ссылке
target -> Capabilities -> Background Modes -> open the background Modes
:затем очистите свой проект, запустите его.
Перейдите сюда для получения дополнительной информации: iOS10AdaptationTips .
источник
<string>
и</string>
, иначе ваше приложение будет отклонено Apple.в iOS 10 вам нужно добавить ключ, указанный на изображении ниже, если вы используете камеру или фотогалерею в своем приложении.
источник
Вам нужно добавить новые настройки конфиденциальности в ваш info.plist.
Не забудьте добавить значение, описывающее, почему приложению требуется доступ к службе.
источник
В iOS 10 Apple изменила способ доступа к любым личным типам данных пользователя.
Вам необходимо добавить ключ « Конфиденциальность - описание использования фото-библиотеки» в информацию об использовании вашего приложения
Info.plist
и их использовании.Для получения дополнительной информации, пожалуйста, найдите ниже GIF.
Или, если вы хотите добавить через,
info.plist
вам нужно добавить ключ NSPhotoLibraryUsageDescription .Просто скопируйте и вставьте строку ниже
info.plist
.Пожалуйста, найдите ниже GIF для получения дополнительной информации.
источник