Desde iOS 8 Accedo con éxito a la misma carpeta al usar " Funcionalidad de grupo de aplicaciones " . Estoy ampliando la respuesta de @siejkowski.
Nota: funcionará solo desde la misma cuenta de desarrollador.
Para eso, debe seguir los pasos a continuación.
- Primero habilite "Grupos de aplicaciones" desde su cuenta de desarrollador.
- Generar perfil de aprovisionamiento. y utilícelo.
Ahora tienes que crear dos aplicaciones. Nombre de muestra
- Demo_Share_One
- Demo_Share_Two
Ahora estamos copiando imágenes de Demo_Share_One a la carpeta Compartir, que se crea de forma predeterminada cuando habilita los Grupos de aplicaciones y ejecuta la aplicación. y accederá a todas esas imágenes desde Demo_Share_Two .
Debe tomar el nombre del grupo que se configuró en su cuenta de desarrollador. group.filesharingdemo
.
Agregue el método a continuación en Ambas aplicaciones para obtener la ruta relativa de la URL de la carpeta para compartir.
- (NSString *) getSharedLocationPath:(NSString *)appGroupName {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *groupContainerURL = [fileManager containerURLForSecurityApplicationGroupIdentifier:appGroupName];
return [groupContainerURL relativePath];
}
Ahora estamos copiando imágenes del paquete de Demo_Share_One
-(IBAction)writeImage:(id)sender
{
for (int i = 0; i<15; i++)
{
NSString *strSourcePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"hd%d",i+1] ofType:@"jpg"];
NSString *strDestinationPath = [[self getSharedLocationPath:@"group.filesharingdemo"] stringByAppendingPathComponent:[NSString stringWithFormat:@"hd%d",i+1]] ;
BOOL filewrite = [[NSFileManager defaultManager]copyItemAtPath:strSourcePath toPath:strDestinationPath error:nil];
if (filewrite)
NSLog(@"File write");
else
NSLog(@"can not write file");
}
}
Ahora en Demo_Share_Two para acceder a esas imágenes
NSString *pathShared = [[self getSharedLocationPath:@"group.filesharingdemo"] stringByAppendingPathComponent:[NSString stringWithFormat:@"hd%d.jpg",number]];
NSLog(@"%@",pathShared);
imgView.image = [UIImage imageWithContentsOfFile:pathShared];
Y ahora obtendrá todas las imágenes que escriba de Demo_Share_One .
Entonces, de ahora en adelante, si desea compartir esta carpeta, será su tercera aplicación. solo agrega esa aplicación en tu grupo. Por lo tanto, es demasiado fácil acceder a los mismos elementos en sus múltiples aplicaciones.
si no habilita los grupos de aplicaciones en su AppID, obtendrá [self getSharedLocationPath: @ "group.filesharingdemo"] es nulo.
Gracias a Apple por compartir elementos desde la funcionalidad de sus propias aplicaciones . Codificación feliz. :)