fastlane: Arabic language not supported in metadata

Issue Description

Arabic language directory metadata/ar not recognized as valid.

Note: Even though the Arabic language directory screenshots/ar is recognized as valid when creating screenshots.

Command executed

fastlane deliver --skip_screenshots --skip_binary_upload --verbose --force --phased_release --automatic_release

Complete output when running fastlane, including the stack trace and command used
 .fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/fastlane-2.126.0/fastlane_core/lib/fastlane_core/ui/interface.rb:141:in `user_error!': [!] Unsupported directory name(s) for screenshots/metadata in './fastlane/metadata': ar (FastlaneCore::Interface::FastlaneError)
Valid directory names are: ["ca", "cs", "da", "de-DE", "el", "en-AU", "en-CA", "en-GB", "en-US", "es-ES", "es-MX", "fi", "fr-CA", "fr-FR", "he", "hi", "hr", "hu", "id", "it", "ja", "ko", "ms", "nl-NL", "no", "pl", "pt-BR", "pt-PT", "ro", "ru", "sk", "sv", "th", "tr", "uk", "vi", "zh-Hans", "zh-Hant", "appleTV", "iMessage", "default"]

Enable ‘ignore_language_directory_validation’ to prevent this validation from happening

Environment
✅ fastlane environment ✅

Stack

Key Value
OS 10.14.5
Ruby 2.2.4
Bundler? false
Git git version 2.20.1 (Apple Git-117)
Installation Source ~/.fastlane/bin/bundle/bin/fastlane
Host Mac OS X 10.14.5 (18F132)
Ruby Lib Dir ~/.fastlane/bin/bundle/lib
OpenSSL Version OpenSSL 1.0.2g 1 Mar 2016
Is contained false
Is homebrew true
Is installed via Fabric.app false
Xcode Path /Applications/Xcode.app/Contents/Developer/
Xcode Version 10.2.1

System Locale

Variable Value
LANG en_US.UTF-8
LC_ALL en_US.UTF-8
LANGUAGE en_US.UTF-8

fastlane files:

No Fastfile found

No Appfile found

fastlane gems

Gem Version Update-Status
fastlane 2.126.0 ✅ Up-To-Date

Loaded fastlane plugins:

No plugins Loaded

Loaded gems
Gem Version
slack-notifier 2.3.2
atomos 0.1.3
CFPropertyList 2.3.5
claide 1.0.2
colored2 3.1.2
nanaimo 0.2.6
xcodeproj 1.10.0
rouge 2.0.7
xcpretty 0.3.0
terminal-notifier 2.0.0
unicode-display_width 1.1.3
terminal-table 1.7.3
plist 3.2.0
public_suffix 2.0.5
addressable 2.5.1
multipart-post 2.0.0
word_wrap 1.0.0
tty-screen 0.6.5
tty-cursor 0.6.0
tty-spinner 0.8.0
babosa 1.0.2
colored 1.2
highline 1.7.8
commander-fastlane 4.4.6
excon 0.55.0
faraday 0.12.1
unf_ext 0.0.7.4
unf 0.1.4
domain_name 0.5.20170404
http-cookie 1.0.3
faraday-cookie_jar 0.0.6
fastimage 2.1.0
gh_inspector 1.1.3
json 1.8.1
mini_magick 4.5.1
multi_xml 0.6.0
rubyzip 1.2.2
security 0.1.3
xcpretty-travis-formatter 0.0.4
dotenv 2.2.0
bundler 1.14.6
faraday_middleware 0.11.0.1
naturally 2.2.0
simctl 1.6.5
jwt 2.1.0
uber 0.0.15
declarative 0.0.10
declarative-option 0.1.0
representable 3.0.4
retriable 2.1.0
mime-types-data 3.2016.0521
mime-types 3.1
multi_json 1.12.1
signet 0.11.0
memoist 0.16.0
os 0.9.6
googleauth 0.6.7
httpclient 2.8.3
google-api-client 0.23.9
google-cloud-env 1.0.5
google-cloud-core 1.2.7
digest-crc 0.4.1
google-cloud-storage 1.15.0
emoji_regex 0.1.1
libxml-ruby 3.0.0
psych 2.0.8

generated on: 2019-06-27

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 33 (21 by maintainers)

Most upvoted comments

Any update?

This issue should not be closed because it’s still not fixed

This issue is still happening with fastlane 2.134.0.

It fixed on the last fastlane !

[12] pry(main)> Spaceship::Tunes.client.available_languages.sort => [“ca”, “cs”, “da”, “de-DE”, “el”, “en-AU”, “en-CA”, “en-GB”, “en-US”, “es-ES”, “es-MX”, “fi”, “fr-CA”, “fr-FR”, “he”, “hi”, “hr”, “hu”, “id”, “it”, “ja”, “ko”, “ms”, “nl-NL”, “no”, “pl”, “pt-BR”, “pt-PT”, “ro”, “ru”, “sk”, “sv”, “th”, “tr”, “uk”, “vi”, “zh-Hans”, “zh-Hant”]

I just ran the above method locally today but it still returns the same not including “ar” 😞

Hi, chipping in since I have the same issue. That call is actually performed when the app page is loaded, just after selecting an app on App Store Connect. The endpoint is hit just once on loading, any action on languages or saving performs no additional calls.

Something interesting I noticed: there seems to be no reference to the “AR” language in the response body, although you can select Arabic from the UI. Hebrew, which was added the same day as Arabic, is managed correctly and is included in that response… 🤔

Seems to be an issue on Apple’s end. If I run available_languages = Spaceship::Tunes.client.available_languages.sort I only get 38 responses

["ca", "cs", "da", "de-DE", "el", "en-AU", "en-CA", "en-GB", "en-US", "es-ES", "es-MX", "fi", "fr-CA", "fr-FR", "he", "hi", "hr", "hu", "id", "it", "ja", "ko", "ms", "nl-NL", "no", "pl", "pt-BR", "pt-PT", "ro", "ru", "sk", "sv", "th", "tr", "uk", "vi", "zh-Hans", "zh-Hant"]

Arabic is 100% missing here. I can confirm that the upload is working directly via spaceship.

I recommend forking fastlane and removing the “Apple check” https://github.com/fastlane/fastlane/blob/70a41f3c1c17b4ce6eef67c8eac309a7f1637664/deliver/lib/deliver/loader.rb#L29 and just use the “hardcoded” Fastlane defaults and check if it is working for you.

The bug is still there at 2.137.0

🚫 fastlane environment 🚫

Stack

Key Value
OS 10.15.2
Ruby 2.6.3
Bundler? false
Git git version 2.21.0 (Apple Git-122.2)
Installation Source /usr/local/bin/fastlane
Host Mac OS X 10.15.2 (19C57)
Ruby Lib Dir /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib
OpenSSL Version LibreSSL 2.8.3
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode.app/Contents/Developer/
Xcode Version 11.3

System Locale

Error
No Locale with UTF8 found 🚫

fastlane files:

No Fastfile found

No Appfile found

fastlane gems

Gem Version Update-Status
fastlane 2.137.0 ✅ Up-To-Date

Loaded fastlane plugins:

No plugins Loaded

Loaded gems
Gem Version
did_you_mean 1.3.0
slack-notifier 2.3.2
atomos 0.1.3
CFPropertyList 2.3.6
claide 1.0.3
colored2 3.1.2
nanaimo 0.2.6
xcodeproj 1.12.0
rouge 2.0.7
xcpretty 0.3.0
terminal-notifier 2.0.0
unicode-display_width 1.6.0
terminal-table 1.8.0
plist 3.5.0
public_suffix 2.0.5
addressable 2.7.0
multipart-post 2.0.0
word_wrap 1.0.0
tty-screen 0.7.0
tty-cursor 0.7.0
tty-spinner 0.9.1
babosa 1.0.3
colored 1.2
highline 1.7.10
commander-fastlane 4.4.6
excon 0.67.0
faraday 0.17.0
unf_ext 0.0.7.6
unf 0.1.4
domain_name 0.5.20190701
http-cookie 1.0.3
faraday-cookie_jar 0.0.6
faraday_middleware 0.13.1
fastimage 2.1.7
gh_inspector 1.1.3
json 2.1.0
mini_magick 4.9.5
multi_xml 0.6.0
rubyzip 1.3.0
security 0.1.3
xcpretty-travis-formatter 1.0.0
dotenv 2.7.5
bundler 1.17.2
naturally 2.2.0
simctl 1.6.6
jwt 2.1.0
uber 0.1.0
declarative 0.0.10
declarative-option 0.1.0
representable 3.0.4
retriable 3.1.2
mime-types-data 3.2019.1009
mime-types 3.3
multi_json 1.14.0
signet 0.12.0
memoist 0.16.0
os 1.0.1
googleauth 0.6.7
httpclient 2.8.3
google-api-client 0.23.9
google-cloud-env 1.2.1
google-cloud-core 1.3.1
digest-crc 0.4.1
google-cloud-storage 1.16.0
emoji_regex 1.0.1
forwardable 1.2.0
logger 1.3.0
stringio 0.0.2
ipaddr 1.2.2
openssl 2.1.2
ostruct 0.1.0
strscan 1.0.0
date 2.0.0
fileutils 1.1.0
etc 1.0.1
io-console 0.4.7
zlib 1.0.0
libxml-ruby 3.1.0
rexml 3.1.9
psych 3.1.0
mutex_m 0.1.0

generated on: 2019-12-13

Oh, I meant that even though iOS 13 including App Store app that supports Arabic metadata had been released this issue hadn’t been fixed. So I just posted the same result run on a different day.

The issue still stays as I checked it now😞

[5] pry(main)> Spaceship::Tunes.client.available_languages.sort
=> ["ca", "cs", "da", "de-DE", "el", "en-AU", "en-CA", "en-GB", "en-US", "es-ES", "es-MX", "fi", "fr-CA", "fr-FR", "he", "hi", "hr", "hu", "id", "it", "ja", "ko", "ms", "nl-NL", "no", "pl", "pt-BR", "pt-PT", "ro", "ru", "sk", "sv", "th", "tr", "uk", "vi", "zh-Hans", "zh-Hant"]
[6] pry(main)> Spaceship::Tunes.client.available_languages.sort.count
=> 38

It may not be likely to be fixed anytime soon.

This issue is still happening with fastlane 2.137.0 so it shouldn’t be closed.

If an ar-SA folder is present, the following error is triggered:

[!] Unsupported directory name(s) for screenshots/metadata in './fastlane/metadata': ar-SA Valid directory names are: ["ca", "cs", "da", "de-DE", "el", "en-AU", "en-CA", "en-GB", "en-US", "es-ES", "es-MX", "fi", "fr-CA", "fr-FR", "he", "hi", "hr", "hu", "id", "it", "ja", "ko", "ms", "nl-NL", "no", "pl", "pt-BR", "pt-PT", "ro", "ru", "sk", "sv", "th", "tr", "uk", "vi", "zh-Hans", "zh-Hant", "appleTV", "iMessage", "default"].

Do we know where this URL ra/apps/storePreview/regionCountryLanguage comes from and if it is still used in App Store Connect?

(I checked the history of that code, and in the beginning it was added to fix broken or wrongly cApItAlIzEd language codes in folder names, but later this was changed to a harder verfication. The initial discussion included doubts if that endpoint really returns all the supported languages already - which now bites us)

@janpio added environment; @max-ott That’s interesting, because the screenshots are generated and uploaded to the App Store successfully with ar as language in the Snapfile. So I will change it to ar-SA and give it a try for metadata. As you can see I am on fastlane-2.126.0 and the error message does not mention ar or ar-SA at all. I updated with fastlane update_fastlane.