2014-09-19 1 views
10

관련 질문은 이미 herehere입니다. 제안 된 답변을 구현하지 않았습니다.현재 UIActivityViewController-LaunchServices : invalidationHandler라고하는

내가 btnTBAction_touch에 보내기 조치에 대한 연결과 더불어, UIToolbar에 UIBarButtonItem이 : 나는

의 ViewController의 클래스 헤더에 있습니다

@property (nonatomic, strong) UIActivityViewController *activityViewController; 

클래스 구현에 관련 방법 :

- (IBAction)btnTBAction_touch:(id)sender { 
    NSString *string = @"Some string"; 
    NSURL *url = [[NSURL alloc] initWithString:@"http://www.google.com"]; 
    UIImage *image = [UIImage imageNamed:@"default.png"]; 
    self.activityViewController = [[UIActivityViewController alloc] 
     initWithActivityItems:@[string, url, image] applicationActivities:nil]; 

    if ([self.activityViewController respondsToSelector:@selector(popoverPresentationController)]) 
    { 
     UIPopoverPresentationController *presentationController = [self.activityViewController 
      popoverPresentationController]; 
     presentationController.sourceView = sender; 
    } 

    [self presentViewController:self.activityViewController animated:YES completion:nil]; 
} 

위의 방법을 호출하는 버튼을 터치 할 때 물리적 장치에서 디버그 모드로 실행되는 동안 d ebug 콘솔 그러나

2014-09-19 09:43:31.635 TestApp[1878:237873] LaunchServices: invalidationHandler called 
2014-09-19 09:43:31.644 TestApp[1878:237814] LaunchServices: invalidationHandler called 

는,이 경우 내 응용 프로그램이 충돌하지 않는 관련 질문과는 달리, 응용 프로그램이 잘 작동을 계속하고 UIActivityViewController 올바르게 제시 ...하지만 그건 말보다 차라리 버그를 수정 것 충분하다.

는 또한 나는이 선을 사용하여 위 방법의 몇 가지 순열을 시도 :

presentationController.sourceView = self.view; 

presentationController.sourceRect = self.view.frame; 

어느 것도이 문제를 해결할 수있었습니다. 내가 엑스 코드 V6.0.1을 사용하고

  • 내 앱의 배포 대상은 8.0
  • 코드의 모든입니다 아이폰 OS를 실행하는 아이폰 5S에 아이폰 전용
  • 테스트를위한 7.0 오브젝티브 C
+0

같은 문제. http://stackoverflow.com/questions/25192313/sharing-via-uiactivityviewcontroller-to-twitter-facebook-etc-causing-crash에서 제안 된 솔루션이 작동하지 않았습니다 (sourceView 또는 sourceRect). – loretoparisi

+0

여기 같은 문제 – Praksha

답변

5

개발 대상 장치가 iPhone 인 경우이 메시지에 대해 걱정할 필요가 없습니다. 그것은 애플의 버그 인 것 같습니다. 개발자 포럼을 보면 : "해당 로그 메시지는 사용자의 모든 오류를 나타내지 않습니다."

은 참조 : https://devforums.apple.com/message/1049415#1049415

+0

링크? 참조로 나는 이것을 응답으로 표시 할 것이다 – chriszumberge

+0

@chriszumberge 나는 나의 대답을 편집했고 링크를 포함했다 – Eric

2

비슷한 문제는 여기에 있습니다.

UIActivityViewController가 아닌 UIDocumentInteractionController를 사용 중이므로 처리 할 sourceView 또는 sourceRect가 없습니다. 하는 .m In

UIDocumentInteractionController *docInteractionController; 

:

self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:fileURL]; 

self.docInteractionController.delegate = self; 
self.docInteractionController.UTI = @"com.adobe.pdf"; 
//UIBarButtonItem *element is an element in my toolbar 
[self.docInteractionController presentOptionsMenuFromBarButtonItem:element animated:YES]; 

나는 다음과 같은 경고를 see 콘솔에서 : 헤더에

Unknown activity items supplied: (
    { 
    "com.adobe.pdf" = <25504446 (and then what looks like the rest of the pdf I tried to open)>; 
}, 
"<UIPrintInfo: 0x17b47ca0>" 
) 
2014-10-14 21:11:21.661 iFly[288:29569] LaunchServices: invalidationHandler called 

그리고 정부 발행 앱 스토어 버전

내 앱의 앱이 다운됩니다. 내 iPad에서 컴파일하고 실행하면 경고 만 표시됩니다.

UIDocumentInteractionController 호출에 presentOptionsMenuFromBarButtonItem 대신 presentOpenInMenuFromBarButtonItem을 사용하여 경고의 "Unknown activity items"부분을 제공하지만 "LaunchServices"경고가 계속 발생할 수 있습니다.

iPad 버전 8.0.2. Xcode 버전 6.0.1, 배포 대상 6.0 (배포 대상 8.0에서 테스트 됨) 모든 목표 - c.

+0

동일한 문제가 나타납니다. 또한 메뉴 옵션을 취소 할 때 내 동작 버튼이 활성화되어 있지 않은 것 같습니다. 이러한 오류가 발생했는지 여부는 확실하지 않습니다. 누군가 대답 해 주실 수 있습니까? – Shwethascar

0

이 나를 위해 일한 것입니다 (당신이 로그인해야 할 수 있습니다). 오류 없음. "isAvailableForServiceType :"이라는 if 문을 제거해야했습니다. 그것이 당신을 위해 일하기를 희망하십시오!

SLComposeViewController *tweetSheet = [SLComposeViewController 
              composeViewControllerForServiceType:SLServiceTypeTwitter]; 

    [tweetSheet setInitialText:@"Great fun to learn iOS programming at appcoda.com!"]; 
    [self presentViewController:tweetSheet animated:YES completion:nil]; 

    if ([tweetSheet respondsToSelector:@selector(popoverPresentationController)]) 
    { 
     // iOS 8+ 
     UIPopoverPresentationController *presentationController = [tweetSheet popoverPresentationController]; 

     presentationController.sourceView = sender; // if button or change to self.view. 
    } 
+0

'UIDocumentInteractionController'에 대해 어때? 'UIDocumentInteractionController'는'popoverPresentationController' 속성을 가지고 있지 않습니다. – TomSawyer