Skip to content

chore(ios): Changes required for XCode 14.3#8746

Merged
mcdurdin merged 2 commits intokeymanapp:masterfrom
davidmoore1:xcode14_3Carthage
May 16, 2023
Merged

chore(ios): Changes required for XCode 14.3#8746
mcdurdin merged 2 commits intokeymanapp:masterfrom
davidmoore1:xcode14_3Carthage

Conversation

@davidmoore1
Copy link
Contributor

@davidmoore1 davidmoore1 commented May 10, 2023

Update Carthage dependencies to versions that will build under XCode 14.3

User Testing

(adopted from Keyman for iPhone and iPad Acceptance Test Procedures)


Gather Assets for Testing

  • We only need to test all these on iPhone
  • Record device's iOS version
  • Ensure the device is properly configured for testing and is registered with TestFlight.

At this time, Keyman for iOS does not support external keyboard input.

Setup Steps

  1. Uninstall previous version of Keyman on the device (on a simulator, "Erase All Content and Settings..." under Device menu)
  2. Install test build IPA (on a simulator, "iOS Simulator Image")
  3. Disable internet connectivity of the device
  4. Start Keyman and select Add a keyboard for your language
  5. Verify error message "Could not reach Keyman server!" or "The Internet connection appears to be offline." is displayed
  6. Click OK to dismiss. Close Keyman app
  7. On device, enable internet connectivity
  8. Start Keyman
  9. On initial Get Started menu, select "Enable Keyman as system-wide keyboard" and do any necessary system steps to enable Keyman

SUITE_MENU_FUNCTIONALITY: Menu Functionality Tests, in-app

Test Cases

  • TEST_GET_STARTED: Get Started

    • Verify touching Add a keyboard for your language pulls up the keyboard search
      • This should also be accessible as Settings > Installed Languages > +.
    • Verify touching Enable Keyman as system-wide keyboard pulls up Keyman's menu within iOS settings. (11.0+ devices)
      • If older versions of iOS are supported, ensure that the help page for doing it manually is properly linked.
    • Verify touching More info brings up an accurate version and the main table-of-contents help page.
      • This should also be accessible as Info from the main menu dropdown (on phones) or as the circled-i button (on tablets).
    • Set Don't show again to checked, close and re-open Keyman, and verify Get Started menu does not appear
  • TEST_ADD_NEW_KEYBOARD: Add New Keyboard
    This menu is accessed via Get Started menu or Settings menu

    • On the device, enable internet connectivity
    • Verify a new keyboard can be downloaded and selected, say "US Basic"
    • Return to the text input screen and confirm that it operates correctly.
    • Without changing selected language, confirm that it can be cleanly deleted via the Settings menu.
    • Confirm that another keyboard is correctly selected afterward.
  • TEST_ADD_NEW_KEYBOARD_FROM_FILE:

    • On the device, go to keyman.com on Safari
    • Search for "US Basic"
    • scroll down to keyboard details and tap to download the keyboard package (i.e. .kmp file)
    • open Files app and navigate to Download folder to find "basic_kbdus.kmp" and tap on it to start the installation processes
    • Keyman app should be pulled up
    • follow the screen to finish the keyboard installation
    • verity that the keyboard is correctly installed and working as expected
  • TEST_SWITCH_KEYBOARD

    • press on the globe key
    • the keyboard menu should be shown
    • press on a keyboard to switch to, say "EuroLatin (SIL)"
    • confirm that "EuroLatin (SIL)" is now selected and ready to be used
    • swich back to "US Basic" and confirm it does as expected
  • TEST_SHARE: Share

    • Type and verify text can be copied and shared to external app
  • TEST_KEYMAN_BROWSER: Keyman Browser ###

    • On default page, click on text field and set system keyboard to Keyman
    • Verify can type with Keyman as system keyboard
    • Verify that predictive suggestions are properly applied when selected (using sil_euro_latin + English)
    • Close and reopen Keyman app
  • TEST_TEXT_SIZE: Text Size

    • Verify text can be rescaled from Text Size 9 to 72
  • TEST_CLEAR_TEXT: Clear Text

    • Verify text can be cleared
  • TEST_INFO: Info

    • Verify that the Keyman iOS version is displayed; record the version
    • Verify that the Info menu options matches that of the More Info... option from the Get Started menu option.
    • Verify that the Keyman iOS version matches the version string seen at (Home Screen) > [iOS] Settings > Keyman.
  • TEST_SETTINGS: Settings

    • Installed Languages ... Add Language

    • Select an installed language ... Add (another) Keyboard

      • Should automatically perform a filtered search based upon that language's BCP-47 code, i.e. for "English" it should be seen as shown in the screenshot below.
    • Select an installed language ... Dictionary

      • Turn on/off 'Enable Predictions' and validate each
      • Turn on/off 'Enable Corrections' and validate each
    • Validate that when both predictions and corrections are off, banner is not visible

    • Add/Remove dictionaries - validate

    • If multiple dictionaries are available, test swapping between them


SUITE_IN_APP_KEYBOARD:

Test Cases

  • TEST_US_BASIC: English: US Basic in-app

    • Verify that the US Basic keyboard can be downloaded through Settings > Installed Languages > English > +
      • This should automatically bring up search results for English keyboards.
      • When the package-installer launches, English should be the one pre-selected language.
    • Install the package for both English and Tagalog by selecting both of them in the installation processes.
    • Set English: US Basic as the active in-app keyboard.
    • Verify that predictive text suggestions appear.
    • Set Tagalog: US Basic as the active in-app keyboard.
    • Verify that predictive text suggestions do not appear.
    • Verify that long-press 123 key works, presenting options for a currency layer and a symbol layer.
    • Select the currency layer, then press the £ key.
    • Verify that the keyboard outputs correctly and returns to the default layer.
    • Go to the symbol layer and press the © key.
    • Verify that the keyboard outputs correctly and remains on the symbol layer.
    • Revert to the default layer and ensure basic key inputs work.
    • Long-press e on the default layer and select a subkey.
    • Verify that the selected key produces the correct output.
    • From the Settings > Languages > English > US Basic menu, follow the "Help link" and ensure it displays appropriate help.
      • (Should work both online and offline)
    • From the Settings > Languages > English > US Basic menu, scan the QR code with a phone and test that it links to the current version of that keyboard's public download page on keyman.com.
    • Returning to the app, uninstall the US Basic keyboard via Settings for Tagalog.
    • Set English: US Basic as the active in-app keyboard.
    • Verify that the keyboard appears correctly and ensure basic key inputs work.
      • This is to ensure that uninstalling for one language doesn't adversely affect installations of the same resource for another language.
    • Uninstall the US Basic keyboard via Settings for English.
  • TEST_EUROLATIN: English (Eurolatin) in-app

    • In portrait orientation, verify that the OSK appears and fills the width the bottom of the screen
    • Verify long-press q key works
    • Verify long-press k key works
      • Verify that any predictive suggestions generated feel 'reasonable' (based upon 'k', the selected subkey, or one of its neighbors)
    • Verify uppercase layer can be selected via SHIFT
    • Verify number layer can be selected via 123
    • Verify long-press 1 key works
    • Verify long-press 0 key works
    • Verify backspace, space, and enter keys work

SUITE_SYSTEM_KEYBOARD:

Test the following after setting Keyman as a system keyboard.

Test Cases

  • TEST_BASIC_USAGE: ensure that the keyboards functions as expected on all layers. Please test on multiple keyboards, i.e. EuroLatin (SIL), Cameroon QWERTY keyboard and Khmer Angkor.

  • TEST_LONG_PRESS: ensure that longpress on all applicable layers are working as intended.

  • TEST_GLOBE_KEY: ensure that a short press on the globe key switch to the next keyboard and a longpress on it open the keyboard menu where you can select a keyboard of your choice

@keymanapp-test-bot keymanapp-test-bot bot added the user-test-missing User tests have not yet been defined for the PR label May 10, 2023
@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented May 10, 2023

User Test Results

Test specification and instructions

✅ SUITE_MENU_FUNCTIONALITY: Menu Functionality Tests, in-app

10 tests in 1 groups PASSED
  • TEST_GET_STARTED (PASSED): Tested with the attached PR build (Keyman 17.0.103-alpha-test-8746) in iOS 15.0 / iPhone 12 Pro Max Simulator and here is my observation: 1. Verified that the options ‘Add a keyboard for your languages’, ‘Setup Keyman as system-wide keyboard’ and ‘More Info’ are working as expected. Also, ‘Don’t show again’ option is also working as expected.
  • TEST_ADD_NEW_KEYBOARD (PASSED): Verified that the US Basic Keyboard appears as the active keyboard in the text input screen.
  • TEST_ADD_NEW_KEYBOARD_FROM_FILE (PASSED): Verified that the US Basic Keyboard (from .kmp file) installed successfully. Also, verified that the US Basic keyboard appears as an active keyboard.
  • TEST_SWITCH_KEYBOARD (PASSED): Verified that the Switching keyboards using globe key is working as expected.
  • TEST_SHARE (PASSED): Verified that the copied text “Keyman” appears on the Messages / Text box. Seems to be working as expected.
  • TEST_KEYMAN_BROWSER (PASSED): Verified that the Predictive text (“Key Keys Keyboard) appears on the suggestion banner of the On Screen Keyboard. Seems to be working as expected.
  • TEST_TEXT_SIZE (PASSED): Able to change the text size from small size to large size in the text input screen. Seems to be working as expected.
  • TEST_CLEAR_TEXT (PASSED): Verified that the typed text message has been cleared from the Input text screen.
  • TEST_INFO (PASSED): Verified that the Info Help topic is working fine in the Get Started dialog as well as in the Keyman menu list. Seems to be working as expected. (notes)
  • TEST_SETTINGS (PASSED): Verified that the Settings / Installed Languages menu is working as expected.

✅ SUITE_IN_APP_KEYBOARD:

2 tests in 1 groups PASSED
  • TEST_US_BASIC (PASSED): Tested with the attached PR build (Keyman 17.0.103-alpha-test-8746) in iOS 15.0 / iPhone 12 Pro Max Simulator and here is my observation: 1. Verified that the US Basic - English Keyboard and US Basic - Tagalog keyboard are working as expected.
  • TEST_EUROLATIN (PASSED): Verified that the Short Press key, Long Press key, Number key, Backspace key, Spacebar key are working as expected in the Eurolatin (SIL) keyboard.

✅ SUITE_SYSTEM_KEYBOARD:

3 tests in 1 groups PASSED
  • TEST_BASIC_USAGE (PASSED): Tested with the attached PR build (Keyman 17.0.103-alpha-test-8746) in iOS 15.0 / iPhone 12 Pro Max Simulator and here is my observation: 1. Verified that keyboards like Khmer Angkor, Cameroon QWERTY keyboards are working in all layers. Long Press, Short Press, Num Keys are also working fine with these keyboards. Seems to be working as expected.
  • TEST_LONG_PRESS (PASSED): Verified that Long Press functionality is working fine in all layers. Seems to be working as expected.
  • TEST_GLOBE_KEY (PASSED): Short Pressing the globe key switches to the next keyboard. Long Pressing the globe key shows the picker menu on the OSK, after setting Keyman as the System wide keyboard. Seems to be working as expected.

@keyman-server
Copy link
Collaborator

This pull request is from an external repo and will not automatically be built. The build must still be passed before it can be merged. Ask one of the team members to make a manual build of this PR.

@darcywong00 darcywong00 added this to the A17S12 milestone May 11, 2023
@darcywong00 darcywong00 changed the title Changes required for XCode 14.3 chore(ios): Changes required for XCode 14.3 May 11, 2023
@@ -1,5 +1,5 @@
github "marmelroy/Zip"
github "DaveWoodCom/XCGLogger" ~> 6.1.0
github "keymanapp/dependency-XCGLogger" "master"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want a specific tag here? The latest looks to be 7.0.1 from Feb 2020

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can stick with 'master' given we control the fork

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You use 'master' here but 'head' in oem/firstvoices/ios/Cartfile?

github "keymanapp/dependency-XCGLogger" "master"

vs

github "keymanapp/dependency-XCGLogger" "head"

Can we use the same in both places please?

@darcywong00
Copy link
Contributor

Update Carthage dependencies to versions that will build under XCode 14.3

I see this includes updating sentry-cocoa to 8.7.0.

@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-missing User tests have not yet been defined for the PR label May 11, 2023
Copy link
Member

@mcdurdin mcdurdin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll kick off a build

@@ -1,5 +1,5 @@
github "marmelroy/Zip"
github "DaveWoodCom/XCGLogger" ~> 6.1.0
github "keymanapp/dependency-XCGLogger" "master"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You use 'master' here but 'head' in oem/firstvoices/ios/Cartfile?

github "keymanapp/dependency-XCGLogger" "master"

vs

github "keymanapp/dependency-XCGLogger" "head"

Can we use the same in both places please?

@mcdurdin
Copy link
Member

Thanks @davidmoore1 for your PR -- really appreciate your contribution!

@mcdurdin mcdurdin added the chore label May 11, 2023
@keymanapp-test-bot keymanapp-test-bot bot added has-user-test user-test-required User tests have not been completed labels May 11, 2023
Copy link
Member

@mcdurdin mcdurdin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just that one change requested above

@MakaraSok
Copy link

MakaraSok commented May 11, 2023

A full set of tests for iOS is included here to avoid any mishaps.

@mcdurdin mcdurdin modified the milestones: A17S12, A17S13 May 14, 2023
@bharanidharanj
Copy link

SUITE_MENU_FUNCTIONALITY: Menu Functionality Tests, in-app

  • TEST_GET_STARTED (PASSED): Tested with the attached PR build (Keyman 17.0.103-alpha-test-8746) in iOS 15.0 / iPhone 12 Pro Max Simulator and here is my observation: 1. Verified that the options ‘Add a keyboard for your languages’, ‘Setup Keyman as system-wide keyboard’ and ‘More Info’ are working as expected. Also, ‘Don’t show again’ option is also working as expected.
  • TEST_ADD_NEW_KEYBOARD (PASSED): Verified that the US Basic Keyboard appears as the active keyboard in the text input screen.
  • TEST_ADD_NEW_KEYBOARD_FROM_FILE (PASSED): Verified that the US Basic Keyboard (from .kmp file) installed successfully. Also, verified that the US Basic keyboard appears as an active keyboard.
  • TEST_SWITCH_KEYBOARD (PASSED): Verified that the Switching keyboards using globe key is working as expected.
  • TEST_SHARE (PASSED): Verified that the copied text “Keyman” appears on the Messages / Text box. Seems to be working as expected.
  • TEST_KEYMAN_BROWSER (PASSED): Verified that the Predictive text (“Key Keys Keyboard) appears on the suggestion banner of the On Screen Keyboard. Seems to be working as expected.
  • TEST_TEXT_SIZE (PASSED): Able to change the text size from small size to large size in the text input screen. Seems to be working as expected.
  • TEST_CLEAR_TEXT (PASSED): Verified that the typed text message has been cleared from the Input text screen.
  • TEST_INFO (PASSED): Verified that the Info Help topic is working fine in the Get Started dialog as well as in the Keyman menu list. Seems to be working as expected.
  • TEST_SETTINGS (PASSED): Verified that the Settings / Installed Languages menu is working as expected.

@bharanidharanj
Copy link

Test Results

SUITE_IN_APP_KEYBOARD:

  • TEST_US_BASIC (PASSED): Tested with the attached PR build (Keyman 17.0.103-alpha-test-8746) in iOS 15.0 / iPhone 12 Pro Max Simulator and here is my observation: 1. Verified that the US Basic - English Keyboard and US Basic - Tagalog keyboard are working as expected.
  • TEST_EUROLATIN (PASSED): Verified that the Short Press key, Long Press key, Number key, Backspace key, Spacebar key are working as expected in the Eurolatin (SIL) keyboard.

SUITE_SYSTEM_KEYBOARD:

  • TEST_BASIC_USAGE (PASSED): Tested with the attached PR build (Keyman 17.0.103-alpha-test-8746) in iOS 15.0 / iPhone 12 Pro Max Simulator and here is my observation: 1. Verified that keyboards like Khmer Angkor, Cameroon QWERTY keyboards are working in all layers. Long Press, Short Press, Num Keys are also working fine with these keyboards. Seems to be working as expected.
  • TEST_LONG_PRESS (PASSED): Verified that Long Press functionality is working fine in all layers. Seems to be working as expected.
  • TEST_GLOBE_KEY (PASSED): Short Pressing the globe key switches to the next keyboard. Long Pressing the globe key shows the picker menu on the OSK, after setting Keyman as the System wide keyboard. Seems to be working as expected.

@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-required User tests have not been completed label May 15, 2023
@mcdurdin mcdurdin merged commit a61bab4 into keymanapp:master May 16, 2023
@keyman-server
Copy link
Collaborator

Changes in this pull request will be available for download in Keyman version 17.0.108-alpha

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants