Как разархивировать архив после запуска itemProvider.loadItem(forTypeIdentifier: "public.archive", options: nil)
Я работаю над Share Extension. Я хотел бы знать, как действовать после того, как я смогу получить архив из общего контента.
Что мне нужно сделать, так это разархивировать архив и загрузить разархивированные файлы в хранилище firebase.
Вот мой код (я использовал firebase для проверки существования архива):
override func didSelectPost() {
FirebaseApp.configure()
storageRef = Storage.storage().reference()
ref = Database.database().reference()
guard let extensionItems = extensionContext?.inputItems as? [NSExtensionItem] else {
return
}
for extensionItem in extensionItems {
if let itemProviders = extensionItem.attachments as? [NSItemProvider] {
for itemProvider in itemProviders {
if itemProvider.hasItemConformingToTypeIdentifier("public.text") {
itemProvider.loadItem(forTypeIdentifier: "public.text", options: nil) { (text, error) in
self.ref.child("urlString").setValue(text)
}
}
if itemProvider.hasItemConformingToTypeIdentifier("public.archive") {
itemProvider.loadItem(forTypeIdentifier: "public.archive", options: nil) { (archive, error) in
self.ref.child("hasArchive").setValue("true")
// I found the true value on firebase,
// so I am sure that I obtained an archive
// What to do next if I want to unzip it,
// and upload to firebase storage?
}
}
}
}
}
self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil)
}