5

I have an iOS keyboard app extension which exists in the app store. Recently, while testing the effects of upgrading the app from version 1.0 to 1.1, I noticed that when I press and hold the globe icon on the standard iOS keyboard, my app's name is displayed as (null). Has anyone else experienced this? This tends to happen if I do not try to open the companion app before opening the keyboard after upgrade. If I open the companion app, this tends to go away. I've attached an image below.

keyboard name

Update: Using iOS Console, I noted the log entry below:

Oct  5 16:16:40 Sarangan-Balasubramaniams-iPad SpringBoard[48] <Warning>: Installed apps did change.
    Added: {(
    )}
    Removed: {(
    )}
    Modified: {(
        "com.vijay.SuperKeyz"
    )}
Oct  5 16:16:41 Sarangan-Balasubramaniams-iPad pkd[116] <Warning>: INSTALLED:com.vijay.SuperKeyz.keykeykeyboard com.vijay.SuperKeyz.keykeykeyboard(1.1) <__NSConcreteUUID 0x17d93870> AF3C211B-0871-49F1-89EF-433510FE85C4 /private/var/mobile/Containers/Bundle/Application/24643C20-B44F-47A4-ADB5-57EA10FF9CF0/SuperKeyz.app/PlugIns/keykeykeyboard.appex
Oct  5 16:16:46 Sarangan-Balasubramaniams-iPad pkd[116] <Warning>: assigning plug-in com.vijay.SuperKeyz.keykeykeyboard(1.0) to keyboard sandbox
Oct  5 16:16:46 Sarangan-Balasubramaniams-iPad pkd[116] <Warning>: enabling pid=1662 for plug-in com.vijay.SuperKeyz.keykeykeyboard(1.0) 4DAC067D-4E00-48A0-86CB-7519AC750C8A /private/var/mobile/Containers/Bundle/Application/8CA610CD-672B-40ED-A564-08EB2D90FD11/SuperKeyz.app/PlugIns/keykeykeyboard.appex
Oct  5 16:16:46 Sarangan-Balasubramaniams-iPad MobileSMS[1662] <Warning>: Communications error: <OS_xpc_dictionary: <dictionary: 0x158928a0> { count = 2, contents =
        "errorcode" => <uint64: 0x158b7ae0>: 4
        "error" => <string: 0x1588ca30> { length = 114, contents = "cannot obtain executable path for plug-in com.vijay.SuperKeyz.keykeykeyboard(4DAC067D-4E00-48A0-86CB-7519AC750C8A)" }
    }>

I apologize for the hard-to-read output, but what you can see is that iOS is searching for my plugin at the wrong path. It's looking for my old install path, instead of the new one. My simple guess is that the iOS keyboard is caching the list of other keyboards someplace, and doesn't update it until some other trigger.

Vijay Sharma
  • 2,252
  • 1
  • 17
  • 21
  • The upgrade path I took was to upgrade my version 1.0 from the app store, to my version 1.1 from TestFlight. However, I managed to see the same problem while upgrading from an ad-hoc IPA file that I exported from the Archives window. – Vijay Sharma Oct 05 '15 at 18:19
  • When you tapped on the "null" keyboard option, did it attempt to open the keyboard and crash? – justColbs Jul 12 '17 at 01:16
  • 1
    @justColbs, from what i recall, you'd tap on the option, and nothing would happen. If you had your device attached to a console, you'd see the last line of the above output (the "error" message) – Vijay Sharma Jul 26 '17 at 14:02

2 Answers2

3

I've seen this too; this is a bug in iOS. You should file a radar on it.

Generally you can fix the issue for an individual App by closing the app from the app switcher and reopening it.

Spotlight and Quick Reply, in my experience, won't let the keyboard come up until the device has been restarted, which also fixes the issue for all other Apps.

Ben Pious
  • 4,765
  • 2
  • 22
  • 34
  • Thanks @ben-pious. That's the conclusion I'm coming too as well, however, what held me back is the fact that there are other keyboards in the store that don't suffer from this problem. I'm tempted to think that maybe the problem goes away when installation happens through the app store, but I can't be certain without putting my app out, and potentially annoying my customers. How did you approach the issue? – Vijay Sharma Oct 06 '15 at 13:47
  • The situation may have changed since I last looking into it, but as far as I know this does indeed affect production versions of keyboard extensions. Where I work, we suggest in every release notes that users restart their devices after installing, and I believe there is a Chinese language keyboard that actually has a notification telling users to restart in the keyboard itself. – Ben Pious Oct 06 '15 at 19:30
  • I was having this problem trying to run a new version of our keyboard on a device. We couldn't get the new version to come up, and its title on the next keyboard key showed "(null) etc..." Even though we had deleted the previous version of the app from the device, it was still running in the background. Opening the app switcher and closing this (and all of the running apps) allowed the keyboard to come up. – floatingpoint Jan 21 '17 at 02:31
2

For people still facing this in iOS 10+, make sure your Bundle Name is the same as your Bundle Display Name.

S2dent
  • 939
  • 6
  • 9
  • Yep, it solved it for our Hockey builds for sure, however we are still experiencing it when updating from live to ad-hoc builds and inversely – S2dent Jun 13 '17 at 19:08
  • Hey, just checking in to see if you have found a solution? I'm stilling working on one. @S2dent – justColbs Jul 17 '17 at 19:31
  • 1
    @justColbs, we sticked with that solution since it kind of worked for most of our live builds – S2dent Jul 21 '17 at 08:57