iOS Swift Xcode

iOS カスタムキーボード App Groupsを使って設定値を読ませるときにハマったこと

ベル打ちキーボード、モールス信号キーボードというアプリを出しています。

‎モールス信号キーボード
‎モールス信号キーボード

iOSが提供しているキーボードとは別のオリジナルのキーボードを作るには、iOS8から導入されたExtensionを使用します。

カスタムキーボードの挙動を変更する、例えばキータップ時に音を鳴らすとか鳴らさないとかを切り替えさせるには、

  • ホストのアプリ側に設定画面を作り込む
  • その際、カスタムキーボード側のアプリに値を引き渡すために、App Groupsという機能を使用してUserDefaults経由で設定値を渡してあげる

必要があります。

ベル打ちキーボードの機能拡張にあたり、App Groupsの設定を行ったのですが、どうしてもホストのアプリ側で設定した値がカスタムキーボード側で読み込めない事象にどハマりしてしまったので、備忘のために記録しておきます。

ハマった箇所

App Groupsの設定を以下の通り行なってしまっていました。何がダメだかお分かりでしょうか。

デバッグ実行してもUserDefaultsの値が取得できませんでした。

原因

Capabilityの横、All , Debug , Release とありますが、

Releaseが光っているところでApp Groupsを設定してしまっていたことが原因でした。

そのため、App Groupsの機能はRelease実行なら有効にはなっていたのでしょうが、常にDebug実行していたためにApp Groupsが有効になっていなかったことが原因でした。

結果、Allを光らせている状態でApp Groupsの設定を再度行い、無事ホスト側の設定値を取り込むことができるようになりました。

これで1日ぐらい無駄にしました。

-iOS, Swift, Xcode

© 2022 かずのアプリときどきキャンプ飯 Powered by AFFINGER5