diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index b7a95b6683..db6b79ca2b 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -697,11 +697,24 @@ public class Manager: NSObject, UIGestureRecognizerDelegate { let data = try Data(contentsOf: path, options: .mappedIfSafe) let jsonResult = try JSONSerialization.jsonObject(with: data, options: .mutableLeaves) if let jsonResult = jsonResult as? [String:AnyObject] { + var version: String = "error" + + if let info = jsonResult["info"] as? [String:AnyObject] { + if let versionEntry = info["version"] as? [String:AnyObject] { + if let description = versionEntry["description"] as? String { + version = description; + } + } + } + + if version == "error" { + throw KMPError.invalidPackage + } + if let lexicalModels = jsonResult["lexicalModels"] as? [[String:AnyObject]] { for k in lexicalModels { let name = k["name"] as! String let lexicalModelID = k["id"] as! String - let version = k["version"] as! String //TODO: handle errors if languages do not exist //var languageName = ""