I'm currently developing an app and a keyboard extension under same project file with different bundle name:
app- "com.companyName.appName"
keyboard- "com.companyName.appName.keyboard"
The functionality is fine, however if I try to open custom keyboard in multi apps on physical device, this warning would appears:
[lifecycle] [u 9A2D7B1D-20AF-4E2A-A72F-C37C8D4FDEEA] [com.companyName.appName.keyboard(1.0.0)] WARNING! Sole personality is ambiguous; this may lead to erratic behavior; personalities: {
"com.companyName.appName.keyboard" = {
19209 = "<PKServicePersonality: 0x28299da00; core = <[u 9A2D7B1D-20AF-4E2A-A72F-C37C8D4FDEEA] [com.companyName.appName.keyboard(1.0.0)],[d (null)] [/private/var/containers/Bundle/Application/67892ACC-5BDA-4205-828D-4D94D6E87ABD/AppName.app/PlugIns/Keyboard.appex]>, host pid = 19209>";
19293 = "<PKServicePersonality: 0x28298fb00; core = <[u DA59190E-D8A2-4109-8D7B-1702E03AB0BD] [com.companyName.appName.keyboard(1.0.0)],[d (null)] [/private/var/containers/Bundle/Application/67892ACC-5BDA-4205-828D-4D94D6E87ABD/AppName.app/PlugIns/Keyboard.appex]>, host pid = 19293>";
299 = "<PKServicePersonality: 0x282981700; core = <[u 61DC0533-3D02-4CE7-83C2-D698537BC6ED] [com.companyName.appName.keyboard(1.0.0)],[d (null)] [/private/var/containers/Bundle/Application/67892ACC-5BDA-4205-828D-4D94D6E87ABD/AppName.app/PlugIns/Keyboard.appex]>, host pid = 299>";
};
}
Once a custom keyboard is opened in other app, system will create a new PKServicePersonality instance for that app, it looks like the process is the reason of "may lead to erratic behavior".
Not sure is this a solvable issue by developers, still welcome any idea.