Quero compartilhar um arquivo usando a Folha de Compartilhamento e ter um código escrito que pareça funcionar perfeitamente. No entanto, continuo vendo essas mensagens de erro no log (usando o Xcode 11.3)
[ShareSheet] connection invalidated
Eu tenho dois dispositivos físicos em que estou testando; um iPad com iOS 13.1.2 e um iPhone 6 com 11.4. Não vejo essas mensagens no iPhone com o iOS mais antigo. Nos dois casos, o compartilhamento parece funcionar bem. Aqui está o código que estou usando usando texto em vez de um arquivo:
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)
A mensagem aparece quando a planilha de compartilhamento desaparece (porque o usuário conclui uma ação ou toca fora dela para cancelar).
É seguro ignorar essas mensagens? É estranho que eles não apareçam no sistema operacional mais antigo, mas no novo.
Editado em 20 de março de 2020: validei que estava fornecendo uma fonte válida ou barButtonItem. Alterei o código para corresponder àquele em que estou usando um UIBarButtonItem e ainda vejo o erro invalidado da conexão ShareSheet.
Respostas:
Eu tenho
no log de saída do Xcode no iOS 13.x, e a planilha de compartilhamento foi esmagada e não tinha botões.
Para corrigi-lo, atribua seu
sourceView
a algo mais específico do queself.view
No meu caso, eu tinha alguns
UILabels
perto do topo da minha visão, então defini o meusourceView
para um deles. Por exemplo, no meu controlador de exibição pai, eu tinha umUILabel
nome,labelCustomerName
então usei isso:fonte
Para mim, foi resolvido quando adicionei esse código, com base na documentação do desenvolvedor da Apple .
A propósito, parece que, mesmo se pressionar o botão Fechar da atividade, ele ainda mostra essa mensagem.
fonte