에서 아이폰 OS 8 내가 사용에 성공적으로 액세스 같은 폴더했습니다 " 앱 그룹 기능을. "나는 @siejkowski의 대답을 확장하고있다.
참고 : 동일한 개발자 계정에서만 작동합니다.
이를 위해 아래 단계를 따라야합니다.
- 먼저 개발자 계정에서 "앱 그룹"을 활성화합니다.
- 프로비저닝 프로필을 생성합니다. 그리고 그것을 사용하십시오.
이제 두 개의 앱을 만들어야합니다. 샘플 이름
- Demo_Share_One
- Demo_Share_Two
이제 Demo_Share_One 에서 앱 그룹을 활성화하고 앱을 실행할 때 기본적으로 생성되는 공유 폴더로 이미지를 복사 합니다. Demo_Share_Two의 모든 이미지에 액세스합니다. .
개발자 계정에 설정된 그룹 이름을 가져와야 group.filesharingdemo
합니다.
두 앱에서 아래 방법을 추가하여 공유 폴더 URL의 상대 경로를 가져옵니다.
- (NSString *) getSharedLocationPath:(NSString *)appGroupName {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *groupContainerURL = [fileManager containerURLForSecurityApplicationGroupIdentifier:appGroupName];
return [groupContainerURL relativePath];
}
이제 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");
}
}
이제 Demo_Share_Two 에서 해당 이미지에 액세스합니다.
NSString *pathShared = [[self getSharedLocationPath:@"group.filesharingdemo"] stringByAppendingPathComponent:[NSString stringWithFormat:@"hd%d.jpg",number]];
NSLog(@"%@",pathShared);
imgView.image = [UIImage imageWithContentsOfFile:pathShared];
그리고 이제 Demo_Share_One 에서 작성한 모든 이미지를 얻을 수 있습니다.
따라서 지금부터이 폴더를 세 번째 앱으로 공유하려면. 그룹에 해당 앱을 추가하기 만하면됩니다. 따라서 여러 앱에서 동일한 요소에 액세스하기가 너무 쉽습니다.
AppID에서 앱 그룹을 활성화하지 않으면 [self getSharedLocationPath : @ "group.filesharingdemo"]가 null이됩니다.
자신의 앱 기능에서 요소 를 공유 하는 Apple 덕분 입니다. 행복한 코딩. :)