ios - mac - donde se guardan las fotos importadas del iphone
iOS dejó de pedir al usuario permiso para la biblioteca de fotos (6)
iOS ya no está pidiendo al usuario permiso de la biblioteca de fotos. Incluso cuando he eliminado la aplicación del dispositivo. Esto también sucede en el simulador.
switch ([ALAssetsLibrary authorizationStatus])
{
case ALAuthorizationStatusAuthorized:
RPMLog(@"authorized");
break;
case ALAuthorizationStatusDenied:
RPMLog(@"denied");
break;
case ALAuthorizationStatusNotDetermined:
RPMLog(@"not determined");
break;
case ALAuthorizationStatusRestricted:
RPMLog(@"restricted");
break;
}
Ya estoy autorizado cuando instalo la aplicación por primera vez. Antes de esto, no hay otro evento o pantalla que solicite que las fotos activen el aviso del usuario.
Luego solicito el número de Asignaciones en fotos guardadas y lo obtengo sin el indicador de acceso:
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
if (!group) return;
UIActionSheet *actionSheet = nil;
if (([group numberOfAssets] > 0))
{
actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) destructiveButtonTitle:nil otherButtonTitles:NSLocalizedString(@"Take new photo", nil), NSLocalizedString(@"Use last photo taken", nil), NSLocalizedString(@"Choose existing", nil), nil];
}
else
{
actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) destructiveButtonTitle:nil otherButtonTitles:NSLocalizedString(@"Take new photo", nil), NSLocalizedString(@"Choose existing", nil), nil];
}
actionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
[actionSheet showFromTabBar:self.tabBar];
[TestFlight passCheckpoint:@"New Look: Tab Bar"];
} failureBlock:^(NSError *error) {
NSAssert(!error, [error description]);
}];
Como la pregunta es para los permisos de la Biblioteca de fotos, existe otra forma de cambiar el reloj del sistema y apagar el dispositivo.
Simplemente puedes ir a la aplicación "Configuración"
(General> Restablecer> Restablecer Ubicación y Privacidad).
Esto hará que las aplicaciones vuelvan a solicitar la biblioteca de fotos, la ubicación y otros permisos.
Descansar a través de la aplicación de configuración es difícil de automatizar. Utilizamos simctl
para restablecer el contenido y la configuración de los simuladores de manera automatizada para restablecer el cuadro de diálogo de permisos. Esto requerirá la reinstalación de la aplicación en el simulador, pero nuevamente, simctl
puede lograr esto.
Lo que sucede es que iOS está guardando el permiso otorgado a su aplicación asignada a la ID del paquete. Si la aplicación se elimina, estos datos persisten durante 24 horas, esto evita que el usuario vuelva a preguntar si vuelve a instalar la aplicación (tal vez después de eliminar una aplicación por error) .
Esto también sucede con los avisos de notificaciones push.
Como solución alternativa, cito a Apple con respecto a las Notificaciones Push:
Restablecimiento de la alerta de permisos de notificaciones push en iOS
La primera vez que una aplicación habilitada para push se registra para notificaciones push, iOS pregunta al usuario si desea recibir notificaciones para esa aplicación. Una vez que el usuario responde a esta alerta, no se vuelve a presentar a menos que el dispositivo se restaure o la aplicación se haya desinstalado durante al menos un día.
Si desea simular una ejecución por primera vez de su aplicación, puede dejar la aplicación desinstalada por un día. Puede lograr esto último sin tener que esperar un día si el reloj del sistema avanza un día o más, apaga el dispositivo por completo y luego vuelve a encenderlo .
Fuente: Apple Technical Note TN2265
Puede verificar este permiso por dos tipos:
- En simulador
Usted puede hacer Simulador / Restablecer contenido y configuración . - En dispositivo físico (iPhone, iPad)
Puedes cambiar la fecha, al menos la diferencia debe ser de 24 horas.
pero primero desinstale la aplicación del dispositivo y luego reinicie, luego aplique esto y luego funcionará.
Si está utilizando el simulador de iOS, restablecerlo utilizando el simulador / restablecer contenido y configuración ... parece restablecer esta configuración. Por supuesto, entonces necesitarás reinstalar tu aplicación en ella.
Solo debe seguir el punto de abajo, sin necesidad de reinstalar o eliminar la aplicación.
- Aplicación quitar de fondo
- Vaya a Configuración-> General-> Restablecer-> haga clic en Restablecer ubicación y privacidad
Espero que tengas ayuda.