spiegel-keyman/ios/engine/KMEI/KeymanEngine/Classes/Queries
Marc Durdin bbeb799ac2 feat(ios): add keyman-version to package-version check
For Keyman for iOS, add the new `keyman-version` parameter to the
api.keyman.com/package-version call so that updates to packages that are
not supported on the current version of Keyman will not be offered. This
supports the scenario where an updated keyboard or lexical model depends
on a newer version of Keyman. Note that an older version of the keyboard
or lexical model package will not be offered (the user can still
download and install an older version manually, but generally, the
recommended solution is to upgrade Keyman; there would be significant
cost to add support for querying and installation of older version
keyboards on the server side, for limited benefit).

Also change order of handling for response so that error responses are
recognized even if non-error fields are present. (The current api
endpoint, before keymanapp/api.keyman.com#325 lands, can return `kmp`
and `version` fields even when an `error` field was present, and the iOS
code would see that as a valid response for upgrade, when it shouldn't.
The keymanapp/api.keyman.com#325 change ensures that the additional
fields are not set if there is an `error` field.)

Relates-to: keymanapp/api.keyman.com#325
2026-06-25 11:27:00 +02:00
..
Queries+LexicalModel.swift remove XCGLogger dependency from Keyman Engine 2024-01-19 10:47:54 +07:00
Queries+PackageVersion.swift feat(ios): add keyman-version to package-version check 2026-06-25 11:27:00 +02:00
Queries.swift refactor(ios): error definitions, i18n 2020-08-07 11:48:08 +07:00