diff --git a/oem/firstvoices/ios/Cartfile b/oem/firstvoices/ios/Cartfile index 7ce86ce9b8..fe449bae4b 100644 --- a/oem/firstvoices/ios/Cartfile +++ b/oem/firstvoices/ios/Cartfile @@ -1,4 +1,4 @@ github "marmelroy/Zip" github "DaveWoodCom/XCGLogger" ~> 6.1.0 -github "dennisweissmann/DeviceKit" ~> 1.11 +github "dennisweissmann/DeviceKit" ~> 2.3 github "ashleymills/Reachability.swift" diff --git a/oem/firstvoices/ios/Cartfile.resolved b/oem/firstvoices/ios/Cartfile.resolved index 04fe6e3bf5..cf08cee0b4 100644 --- a/oem/firstvoices/ios/Cartfile.resolved +++ b/oem/firstvoices/ios/Cartfile.resolved @@ -1,4 +1,4 @@ github "DaveWoodCom/XCGLogger" "6.1.0" github "ashleymills/Reachability.swift" "v4.3.1" -github "dennisweissmann/DeviceKit" "1.13.0" +github "dennisweissmann/DeviceKit" "2.3.0" github "marmelroy/Zip" "1.1.0" diff --git a/oem/firstvoices/ios/FirstVoices.xcodeproj/project.pbxproj b/oem/firstvoices/ios/FirstVoices.xcodeproj/project.pbxproj index 644709e83e..a6ea626c93 100644 --- a/oem/firstvoices/ios/FirstVoices.xcodeproj/project.pbxproj +++ b/oem/firstvoices/ios/FirstVoices.xcodeproj/project.pbxproj @@ -47,6 +47,7 @@ 98C9A8F01BFBF6C1009E9A4F /* banner-Portrait@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 98C9A8E51BFBF6C1009E9A4F /* banner-Portrait@2x~ipad.png */; }; 98C9A8F11BFBF6C1009E9A4F /* banner-Portrait@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 98C9A8E61BFBF6C1009E9A4F /* banner-Portrait@3x.png */; }; 98C9A8F21BFBF6C1009E9A4F /* banner-Portrait~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 98C9A8E71BFBF6C1009E9A4F /* banner-Portrait~ipad.png */; }; + CECB62572463E9FA006E47B5 /* DeviceKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37150F6D231637E900C73C6A /* DeviceKit.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -138,6 +139,10 @@ buildActionMask = 2147483647; files = ( 37EA1F20228A183E003E710C /* KeymanEngine.framework in Frameworks */, + 3729344024613C9900C5428C /* ObjcExceptionBridging.framework in Frameworks */, + 3729344124613CA700C5428C /* XCGLogger.framework in Frameworks */, + CECB62572463E9FA006E47B5 /* DeviceKit.framework in Frameworks */, + 3729344324613CC200C5428C /* Zip.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/oem/firstvoices/ios/FirstVoices/FVKeyboardList.swift b/oem/firstvoices/ios/FirstVoices/FVKeyboardList.swift index 39dbe4a0ea..fc16b60711 100644 --- a/oem/firstvoices/ios/FirstVoices/FVKeyboardList.swift +++ b/oem/firstvoices/ios/FirstVoices/FVKeyboardList.swift @@ -229,7 +229,7 @@ class FVRegionStorage { let keyboard: InstallableKeyboard = InstallableKeyboard.init(id: kb.id, name: kb.name, - languageID: keyboardInfo.languages.keys[keyboardInfo.languages.startIndex], + languageID: keyboardInfo.languages[keyboardInfo.languages.startIndex], languageName: kb.name, version: keyboardInfo.version, isRTL: false, diff --git a/oem/firstvoices/ios/FirstVoices/KeyboardInfo.swift b/oem/firstvoices/ios/FirstVoices/KeyboardInfo.swift index 5df939c6be..1a0a27d642 100644 --- a/oem/firstvoices/ios/FirstVoices/KeyboardInfo.swift +++ b/oem/firstvoices/ios/FirstVoices/KeyboardInfo.swift @@ -17,17 +17,12 @@ import Foundation // display and install the keyboard into Keyman Engine. Most of the data // in the files is ignored. // -struct KeyboardInfoLanguage: Decodable { - let displayName: String - let languageName: String - let scriptName: String -} struct KeyboardInfo: Decodable { let id: String let version: String let name: String - let languages: [String:KeyboardInfoLanguage] + let languages: [String] } class KeyboardInfoParser { diff --git a/oem/firstvoices/ios/build_common.sh b/oem/firstvoices/ios/build_common.sh index 3ab810b517..5b84a9c7b8 100755 --- a/oem/firstvoices/ios/build_common.sh +++ b/oem/firstvoices/ios/build_common.sh @@ -103,7 +103,16 @@ done # Build Keyman Engine # -KEYMAN_ENGINE_FRAMEWORK_SRC="$KMEI_BUILD_DIR/build/Build/Products/$CONFIG-iphoneos/KeymanEngine.framework" +if [ $CONFIG = "Debug" ]; then + # When doing a debug run, we'd like to be able to run the result in the Simulator. + # 'universal' can be run both on real devices and in the simulator. + PLATFORM_TARGET="universal" +else + # Actual release builds can't have Simulator-targeted content; Apple will block the submission. + PLATFORM_TARGET="iphoneos" +fi + +KEYMAN_ENGINE_FRAMEWORK_SRC="$KMEI_BUILD_DIR/build/Build/Products/$CONFIG-$PLATFORM_TARGET/KeymanEngine.framework" KEYMAN_ENGINE_FRAMEWORK_DST=./ if [ $DO_UPDATE = true ]; then