iOS9 / Xcode7에서 Facebook등 다른 app의 URL Scheme 호출 실패
iOS의 social / account framework을 이용한 페이스북 로그인 구현시 다음과 같은 상황이 발생하였다.
fb://
로 시작하는 url에 접속 가능한지 여부, 즉 Facebook app이 설치되었는지 확인하려고 다음의 코드를 호출하였다.
-(BOOL) functionName {
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb://]]) {
NSString *urlString = request.URL.absoluteString;
if ([@https://m.facebook.com/plugins/login_success.php" isEqualToString:urlString]) {
[self accountStore];
return NO;
}
return YES:
}
return YES;
}
하지만 아래와 같은 오류 메세지를 줄기차게 뱉어냈다.
2015-08-24 21:57:23.219 meerkat[277:20308] -canOpenURL: failed for URL: “fb://” – error: “This app is not allowed to query for scheme fb”
이는 iOS9으로 변경되면서 바뀐 정책으로 info.plist
에 다음과 같은 항목을 추가하여야 한다.
주의할 점은 연결하고자 하는 app의 custom url scheme
에서 ://
를 제외하고 입려하여야 한다는 것이다. 위의 갈무리 화면은 facebook app이다.