Estoy usando XCode 8 y probando con iOS 10.2 Beta.
He agregado los marcos Photos, PhotosUI y MobileCoreServices al proyecto.
Código muy simple:
#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
e implementación:
- (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];
}
Tan pronto como toco el botón, la aplicación se bloquea con un error muy inútil:
[access] <private>
Eso es. Nada más.
Usando declaraciones de interrupción, la aplicación parece fallar en "presentViewController".
Esta es una aplicación nueva y no tengo nada más en la interfaz de usuario que no sea el botón de agarrar.
Además, probando en iOS 9.3, esto funciona bien. ¿Me estoy perdiendo algo que podría cambiarse en iOS 10?
Respuestas:
Es posible que deba poner NSPhotoLibraryUsageDescription en su plist. Me gusta
Consulte todas las descripciones de uso aquí .
fuente
En iOS10, antes de acceder a datos sensibles a la privacidad como la cámara, los contactos, etc., debe solicitar la autorización o su aplicación se bloqueará cuando acceda a ellos. Luego, Xcode se registrará como:
Como lidiar con esto?
Abra el archivo en su proyecto llamado
info.plist
, haga clic derecho en él, abriendo comoSource Code
, pegue este código a continuación. O puede abririnfo.plist
comoProperty List
predeterminado, haga clic en el botón Agregar, Xcode le dará las sugerencias de finalización mientras escribePrivacy -
con la ayuda del teclado ⬆️ y ⬇️.Recuerde escribir su descripción por qué solicita esta autorización, entre
<string>
y</string>
, o su aplicación será rechazada por Apple:Si no funciona, intente solicitar la autorización de antecedentes:
O vaya a
target -> Capabilities -> Background Modes -> open the background Modes
:luego limpia tu proyecto, ejecútalo.
Vaya aquí para obtener más información: iOS10AdaptationTips .
fuente
<string>
y</string>
, o su aplicación será rechazada por Apple.en iOS 10, debe agregar la clave mencionada en la imagen a continuación si está usando la cámara o la galería de fotos en su aplicación
fuente
Necesita agregar la nueva configuración de privacidad a su info.plist.
No olvide agregar el valor que describe por qué la aplicación necesita acceder al servicio.
fuente
En iOS 10, Apple ha cambiado la forma en que puede acceder a los tipos de datos privados de cualquier usuario.
Debe agregar la clave Privacidad - Descripción de uso de la biblioteca de fotos a la información de uso de su aplicación
Info.plist
.Para obtener más información, busque el siguiente GIF.
O si desea agregar a través de
info.plist
, debe agregar NSPhotoLibraryUsageDescription clave .Simplemente copie y pegue debajo de la cadena
info.plist
.Encuentre el GIF a continuación para obtener más información.
fuente