keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
398 stars 112 forks source link

bug (iOS): Shavian keyboard freezes when typing third character #8786

Open trosel opened 1 year ago

trosel commented 1 year ago

Describe the bug

IMG_6307

when typing the third shavian character (doesn’t matter which one), keyman freezes.

Reproduce the bug

Go to any text box on iOS Try to type three shavian characters

Expected behavior

I can continue typing without the keyboard freezing

Related issues

No response

Keyman apps

Keyman version

16.0.139

Operating system

iOS 16.4.1 (a)

Device

iphone 8 plus

Target application

every text box on iOS

Browser

No response

Keyboard name

No response

Keyboard version

No response

Language name

Shavian (English)

Additional context

No response

trosel commented 1 year ago

This also just happened on the 5th character.

And every time I return to the same textbox, it’s almost as if that text is just corrupted. Because nothing makes it work.

It could be an issue with the cache of the app. Like the keyboard almost remembered that “I’m supposed to freeze at this point”. Some kind of overflow maybe

trosel commented 1 year ago

Test: I tried copy and pasting one extra shavian character to get beyond the blocked point.

Result: IMG_6353

trosel commented 1 year ago

I notice that the keyboard also freezes when I tap a predictive text word option sometimes. Could be related to https://github.com/keymanapp/lexical-models/issues/230

I'm wondering if this is an iOS16.4 thing. Maybe an API changed? Something about the cache is different I think. Keyboard gets overloaded and clunky a lot quicker.

mcdurdin commented 1 year ago

Trying to reproduce this now in latest iOS simulator (it's an all-day job to update XCode...)

mcdurdin commented 1 year ago
runningboardd   [application<Tavultesoft.Keyman>:714] client not entitled to get limitationsForInstance: <Error Domain=RBSServiceErrorDomain Code=1 "Client not entitled" UserInfo={RBSEntitlement=com.apple.runningboard.process-state, NSLocalizedFailureReason=Client not entitled, RBSPermanent=false}>
kernel          4 duplicate reports for Sandbox: com.apple.WebKit.GPU(718) deny(1) mach-lookup com.apple.diagnosticd
mcdurdin commented 1 year ago

See also https://community.software.sil.org/t/keyboard-freezing-on-ios16/7496/10

jahorton commented 1 year ago

Another notable part from that posting:

I’ve done some further tests. Simply changing the “text” field in english_shavian_qwerty to remove the surrogate pairs didn’t fix the problem. However, when I changed the font (as I did with english_shavian_igc as well), the problem seemed to be fixed. I tried just changing the font and leaving the the keyman-touch-layout file otherwise the same (with surrogate pairs) and it worked.

So, maybe it was a problem with the original font, but I’m still unsure why it only appeared in April 2023 after using it for some years.

trosel commented 1 year ago

So, maybe it was a problem with the original font, but I’m still unsure why it only appeared in April 2023 after using it for some years.

The issue occurred only after I updated my operating system to iOS 16.4.1(a). So theoretically it could be a change in some APIs of the operating system.

edit: I see much discussion is happening on the forum post linked above. will check there too

mcdurdin commented 1 year ago

Treating this as an Apple bug. Waiting on Apple's response to FB12210511.

mcdurdin commented 1 year ago

Will close this issue, if Apple ever respond to our bug report I'll update this.

mcdurdin commented 7 months ago

Apple have asked us to re-test with iOS 17.1.2. @trosel are you able to do that?

It seems Apple asked us to re-test a few months ago but Apple's woeful feedbackassistant.apple.com site doesn't do notifications, so it's just because I happened to look at the feedback report after submitting another one that I saw the request...

sgschantz commented 7 months ago

I retested and the issue still exists with iOS 17.2.1

edit: Also exists with iOS 17.4.1

jahorton commented 7 months ago

If there's a newer version, you may as well retest with that - we got back to them "later enough" that they'll probably ask again, but with the current most-recent version (which, today, is 17.4.1, I think?).

sgschantz commented 7 months ago

Attached sysdiagnose file to issue in Apple's Feedback Assistant after reproducing with iOS 17.4.1