エラー「[ShareSheet]接続が無効になりました」エラーiOS13 +(iOS 11.4ではない)


8

共有シートを使用してファイルを共有したいのですが、問題なく動作するように見えるコードを記述しました。ただし、ログにこれらのエラーメッセージが表示され続けます(Xcode 11.3を使用)

[ShareSheet] connection invalidated

私がテストしている2つの物理デバイスがあります。iOS 13.1.2を実行しているiPadと11.4を実行しているiPhone 6。古いiOSがインストールされているiPhoneにはこれらのメッセージは表示されません。どちらの場合も、共有はうまく機能しているようです。ファイルの代わりにテキストを使用して使用しているコードは次のとおりです。

let activityViewController = UIActivityViewController(activityItems: ["simple text for test"], applicationActivities: nil)
activityViewController.excludedActivityTypes = [.message, .airDrop]
activityViewController.popoverPresentationController?.barButtonItem = myBarButtonItem           
self.present(activityViewController, animated: true, completion: nil)

共有シートが消えると、メッセージが表示されます(ユーザーがアクションを完了するか、ユーザーがアクションの外側をタップしてキャンセルしたため)。

これらのメッセージを無視しても安全ですか?古いOSでは表示されず、新しいOSでは表示されるのは奇妙です。

2020年3月20日に編集:有効なソースまたはbarButtonItemを提供していることを確認しました。UIBarButtonItemを使用しているコードと一致するようにコードを変更しましたが、ShareSheet接続無効化エラーが引き続き表示されます。


1
同じ問題が発生しています。また、共有シートが表示されないと主張するユーザーもいます。しかし、私のテストデバイスはうまく機能しています。
Kimi Chiu

回答:


1

わかった

[ShareSheet]接続が無効になりました

iOS 13.xのXcode出力ログで、共有シートが圧縮され、ボタンがありませんでした。

それを修正するには、sourceViewより具体的なものにあなたを割り当てますself.view

私の場合、UILabelsビューの上部にいくつかあるので、そのsourceViewうちの1つに設定しました。たとえば、親のビューコントローラーではUILabel名前が付けられていたlabelCustomerNameため、次のように使用しました。

activityViewController.popoverPresentationController?.sourceView = self.labelCustomerName

特定のボタンを指定しないと、しわくちゃになったウィンドウも見ました。例を正しく修正しました(barButtonItemを使用していて、間違ったコードを含めていました)。共有シート接続無効化エラーが引き続き表示されます。
NW

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.