1

사용자 정의 키보드 확장에 대한 전체 액세스를 확인해야합니다. 나는이 링크를 발견했다.사용자 정의 키보드 확장자에 대한 전체 액세스 확인

How to check the "Allow Full Access" is enabled in iOS 8?

그것은 우리가 응용 프로그램 그룹을 확인할 수 있습니다 말한다. 나는 "group.TTT.TGroup"이라는 앱 그룹을 가지고있다. 그것은 메인 애플 리케이션과 사용자 정의 키보드 사이의 액세스를 공유합니다.

다음과 같이 확인합니다. 문제는 내가 항상 액세스 할 수 있다는 것입니다 (항상 배열 또는 오류 = null이 있음). 동일한 데이터를 공유했기 때문입니까? 그러나 내 앱이 다른 앱 그룹을 사용하고 확장 프로그램이 다른 앱 그룹을 사용하는 경우에는 그 앱에 분명히 액세스 할 수 없습니다. 어떻게 할 수 있는지 알고 싶습니까?

NSFileManager* fileManager = [NSFileManager defaultManager]; 
NSString *path = [fileManager containerURLForSecurityApplicationGroupIdentifier:@"group.TTT.TGroup"].path; 
NSError *error; 
NSArray *arr = [fileManager contentsOfDirectoryAtPath:path error:&error]; 

NSLog(@" arr is %@",arr); 
if (arr == nil || !arr) //can check error also 
    accessOn = NO; 

else accessOn = YES; 
+0

나는 시뮬레이터가 디바이스와 똑같은 행동을하지 않는다고 생각한다. 전체 액세스 권한이 없으면 공유 된 앱 그룹 폴더의 파일을 읽을 수 없습니다. 하지만 시뮬레이터에서 할 수 있습니다. –

+0

메인 앱이란 무엇입니까? 난 그냥 메인 애플 리케이션 공유 애플 리케이션 그룹을 해제하고 여전히 전체 액세스를 확인할 수 – TomSawyer

답변

3

당신은에서 값을 읽는 시도 할 수 NSUserDefaults 공유 - 값이 null의 경우, allowFullAccess 오프

이다 또는 당신이 사용하는 공유 파일 시스템에서 파일을 읽는 시도 할 수 containerURLForSecurityApplicationGroupIdentifier

+1

공유 사용자 폴더가 작동하는지 확인, 즉 containerURLForSecurityApplicationGroupIdentifier – jjxtra

+0

@ 대답을 추가 할 수 있습니다 @ PsychoDad - 감사합니다 – nurxyz

+0

참고 공유 응용 프로그램에서 파일을 읽을 수 있습니다 그룹 폴더에 저장됩니다. 그러나 장치에서 전체 액세스 꺼짐은 파일 액세스를 의미하지 않습니다. –

1
+(bool)fullAccessAccessible{ 
    NSUserDefaults *myDefaults = [[NSUserDefaults alloc] 
           initWithSuiteName:APP_GROUP_NAME]; 
    NSString* test_key = @"extension test full access"; 
    [myDefaults setBool:TRUE forKey:test_key]; 
    BOOL res = [myDefaults boolForKey:test_key]; 
    return res == TRUE;//set and get compare 
} 
+0

당신이 무엇을 말하려고합니까 ?? 설명해주세요. – Kumar