Skip to content

Add missing location purpose string and Siri example phrases - #192

Open
superlime wants to merge 2 commits into
Swiftgram:masterfrom
superlime:appstore-issues-swiftgram
Open

Add missing location purpose string and Siri example phrases#192
superlime wants to merge 2 commits into
Swiftgram:masterfrom
superlime:appstore-issues-swiftgram

Conversation

@superlime

Copy link
Copy Markdown

Two App Store Connect delivery warnings seen on a recent upload of a Swiftgram-based build. Both fixes are additive — no existing line is modified.

ITMS-90683 — Missing purpose string in Info.plist

The Info.plist file for the "Swiftgram.app" bundle should contain a NSLocationAlwaysAndWhenInUseUsageDescription key.

The app requests always-authorization for Live Location sharing and declares the location background mode, so iOS 11+ expects this key rather than the deprecated NSLocationAlwaysUsageDescription on its own.

Every Telegram-iOS/*.lproj/InfoPlist.strings already carries a translation for the key — it simply never existed in the base plist to be localized. The value added here is the existing en.lproj wording, so the fallback matches the English localization.

ITMS-90626 — Invalid Siri Support (176 occurrences)

No example phrase was provided for <intent> in the <lang> language.

The Intents extension declares five system intents in IntentsSupported, and the app bundles 39 localizations — the 37 .lproj folders under Swiftgram/SGStrings/Strings plus be and ms from Telegram-iOS. Apple therefore expects 39 x 5 = 195 phrases.

AppIntentVocabulary.plist existed for only 19 localizations, and each covered only INSendMessageIntent. That is exactly the 19 phrases present and the 176 reported missing.

This adds the four missing intents to those 19 files and creates the plist for the 20 localizations that had none. AppIntentVocabularyResources already globs Telegram-iOS/*.lproj/AppIntentVocabulary.plist, so the new folders are bundled with no BUILD change. Existing INSendMessageIntent entries are left byte-for-byte unchanged, and entries are ordered to match IntentsSupported.

On the translations

The new phrases are machine-translated and would benefit from a pass by native speakers. The validator is satisfied either way, but these strings surface in the Siri and Shortcuts UI. Worth noting that AppIntentVocabulary.plist is not covered by crowdin.yml (which tracks only SGLocalizable.strings), so they will not flow through the translation pipeline and would need manual correction.

Not included

Two other codes from the same delivery are left out on purpose:

  • ITMS-90068MinimumOSVersion 13.0, which Apple requires to be 15.0+ for uploads from Spring 2027. Setting this triggers a ton of deprecated call errors that need to get fixed upstream.
  • ITMS-90892 — no 152x152 / 167x167 iPad artwork in the 17 SG*.alticon sets, so the generated CFBundleIcons~ipad alternate icon entries have no iPad sizes. Fixing it properly means regenerating those from the original source art rather than resampling the @3x files.

Testing

Bazel analysis passes. All 39 plists parse with plistlib, and intent/localization coverage was checked against the exact list of 176 pairs in the delivery email. Can't test against Switgram builds, but the same changes in my fork fixed all the addressed warnings.

superlime and others added 2 commits September 5, 2026 03:11
App Store Connect rejects the upload with:

  ITMS-90683: Missing purpose string in Info.plist — The Info.plist file for
  the "Swiftgram.app" bundle should contain a
  NSLocationAlwaysAndWhenInUseUsageDescription key.

The app requests always-authorization for Live Location sharing and declares
the "location" background mode, so iOS 11+ needs this key rather than the
deprecated NSLocationAlwaysUsageDescription alone.

Every Telegram-iOS/*.lproj/InfoPlist.strings already carries a translation for
the key — it just never existed in the base plist to be localized. The value
added here is the existing en.lproj wording, so the fallback matches the
English localization.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…90626)

App Store Connect reports 176 instances of:

  ITMS-90626: Invalid Siri Support — No example phrase was provided for
  <intent> in the '<lang>' language.

The Intents extension declares five system intents in IntentsSupported
(INSendMessageIntent, INStartAudioCallIntent, INSearchForMessagesIntent,
INSetMessageAttributeIntent, INSearchCallHistoryIntent), and the app bundles 39
localizations — the 37 .lproj folders under Swiftgram/SGStrings/Strings plus be
and ms from Telegram-iOS. Apple wants an example phrase for each intent in each
localization, so it expects 39 x 5 = 195 phrases.

AppIntentVocabulary.plist existed for only 19 localizations and each covered
only INSendMessageIntent, which is exactly the 19 phrases that were present and
the 176 that were reported missing.

This adds the four missing intents to those 19 files and creates the plist for
the 20 localizations that had none. The AppIntentVocabularyResources filegroup
already globs Telegram-iOS/*.lproj/AppIntentVocabulary.plist, so the new folders
are bundled without a BUILD change. Existing INSendMessageIntent entries are
left byte-for-byte unchanged; entries are ordered to match IntentsSupported.

The new phrases are machine-translated and would benefit from a pass by native
speakers — the validator is satisfied either way, but the strings surface in the
Siri and Shortcuts UI, so corrections are welcome.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant