能登 要

札幌在住のiOSアプリ開発者。SwiftUI により分割されたデバイス間を縦横にやりとりできる考え方に転換しています。

iOSアプリ開発者。2009年のiPhoneアプリ開発開始時期から活動。開発言語のアップデートの中でSwiftUIおよび周辺技術に着目中。

アプリアップデートを申請中にITMS-90626が表示された際の対処メモ - Siri Intent Definition

ipaファイルをAppStoreConnect側に転送後にメールでITMS-90626警告が出たおよび対処メモ。使っていないSiri Intent Definitionはビルドターゲットからはずいておいた方が良い。

1) 条件

アプリにWidgetKit をターゲットで追加する際のウィザードでConfigurationを有効とするとSiri Intent Definitionファイルが追加される。

ITMS-90626はSiri Intent Definitionがローカライズされていない旨の警告(多言語対応していない場合は警告は出てこないので気付かない場合もある)。

アプリアップデート用にipaファイルを作成、AppStoreConnect側へ転送後にメールで通知が来たのでサーバー側のチェックが追加されたものとうかがえる。

Stack Overflow にも同様の話が上がっているがこちらは2020年9月14日に発生したとの報告が上がっているので不具合としては以前から知られていたらしい。

ios - ITMS-90626: Invalid Siri Support - Localized title for custom intent: 'Configuration' not found for locale: de_DE - Stack Overflow

2) 原因

申請したアプリの場合、WidgetにConfiguration を利用しようとして一時頓挫、Siri Intent Definitionファイルが残ったままだった。

Siri Intent Definitionファイルの挙動はターゲットに追加された際、コード定義とIntent情報がExtensionに定義されるため警告が出たものと推測できる。

3) 対処方法

Siri Intent Definitionファイルを選択してInspectors - File (Command + Option + 1)を選択しLocalizeを選択する。

Siri Intent Definitionファイルを使っていないのであれば一時的にターゲットから外すと良い。

4) 複数ターゲット指定されるSiri Intent Definition

AppStore Connectで警告が表示されるSiri Intent Definitionは、開発用ポータルで指摘する必要があるほどケアレスミスが起きやすい箇所とも言える。

開発におけるSiri Intent DefinitionはSiri Intent Definition形式のファイルと同義でXcode上から開くと専用のエディタが起動する。

Siri Intent Definitionは複数のターゲットを指定するケースが多い。理由としてはSiri Intent Definitionがターゲットに追加されるとソースコードとリソースが自動生成される。自動生成されたコードを介してアプリ-Extension-OSの3者間でデータをやり取りするために使用される。

iOS13までは専らSiri、Siri Shortcutでの利用だったがiOS14でWidgetの設定に使用されるようになった。今後この手の警告に遭遇することも多くなるかもしれない。

Siri Intent Definition Target