Это способ, которым я решил это ... Я уверен, что это не самый эффективный способ, но он работает :-). Все еще ищем более эффективный способ, так как этот метод генерирует временный файл, добавляя к служебной информации приложения ... Кроме того, пользователь должен сохранить файл дважды, один раз для kml и еще раз для текстового файла. Так или иначе, надеюсь, что это помогает другим.
let kmlFile = "soofie_loc.kml"
let tmpDir = FileManager.default.temporaryDirectory
var fileURL : URL?
fileURL = tmpDir.appendingPathComponent(kmlFile)
let data = Data(kml.utf8)
do {
try data.write(to: fileURL! , options: .atomic)
} catch {
print(error)
}
//let activityViewController = UIActivityViewController(activityItems: [kml, locations], applicationActivities: nil)
if ( !kmlOption ) {
let activityViewController = UIActivityViewController(activityItems: [locations], applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)
}
else {
let activityViewController = UIActivityViewController(activityItems: [fileURL!], applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)
}