共有ボタンのあるアプリがあります。この共有ボタンは、Facebook、Twitter、電子メール、テキスト メッセージなどで共有するために UIActivityViewController を読み込みます。
以前は問題なく動作していましたが、シミュレーターでも問題なく動作していると思いますが、デバイスではView Controllerがすべての適切なオプションとともに表示され、1つをクリックしても何も起こらないか、メールの場合はメールモーダルビューがロードされてから閉じられます。次に、「アクティビティが実行されませんでした。」というログを取得します。これは、完了ブロックが完了に対して false を返したが、activityType が null ではなかった場合です。したがって、選択を認識していますが、何らかの理由でアクティビティをビューにロードしていません
共有しようとしているものをチェックし、ダミーのものに置き換えても(以下に示すように)、まだ運がありません. 私は通常のデバイスを使用しており、Twitter、メール、および Facebook のアカウントをセットアップしており、テキスト メッセージも機能しています。機能するのはコピーだけです (つまり、共有コンテンツをクリップボードにコピーするとき)。同じデバイス上の他のアプリでは、UIActivityViewController と選択したアクティビティの読み込みは正常に機能します。アプリを実行している他のデバイスでも同じ問題が見られます。
ここで何が問題なのか本当にわかりません。非常に当惑します!試してみることの助けや提案は大歓迎です。この問題をデバッグする方法がわかりません。
コードは次のとおりです:(画像も削除しようとしたことに注意してください。運が悪い)
- (void)shareTapped {
NSString *shareText = @"Testing";//[self shareText];
NSURL *url = [NSURL URLWithString:@"http://www.google.ca"]; //[self shareURL];
NSArray *activityItems = [NSArray arrayWithObjects:shareText,url, self.shareImage, nil];
UIActivityViewController *shareDrawer = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
shareDrawer.excludedActivityTypes = @[UIActivityTypePostToWeibo,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll,UIActivityTypePrint];
shareDrawer.completionHandler = ^(NSString *activityType, BOOL completed) {
if (completed) {
NSLog(@"Selected activity was performed.");
} else {
if (activityType == NULL) {
NSLog(@"User dismissed the view controller without making a selection.");
} else {
NSLog(@"Activity was not performed.");
}
}
NSString *result = completed ? @"success" : @"fail";
if (activityType == NULL) {
result = @"dismissed";
}
};
[self presentViewController:shareDrawer animated:YES completion:nil];
}