Package: itunesfs
Script for generating an iTunes Connect package (.itmsp) straight from
your asset folder*itunesfs*performs the following conversion:.The task of managing and uploading the localised assets of your iOS app
in a tedious one. When the number of supported languages increases, the
effort needed via the web interface ofiTunes
Connectis increased accordingly.
Apple’siTMSTransportertool gives you the ability to download and
upload App Store Packages (.itmsp) from the command line. However,
altering the data requires an XML file manipulation.An easier way is to use**itunes_transporter_generator
(itmsp)**, which lets you add your metadata in aYAMLapp configuration.
Runningitmspconverts the YAML file to an.itmsp packagethat can
be uploaded using iTMSTransporter. However, when multiple localized
assets are involved, this solution leads to editing a huge unmanageable
YAML file.This tool,itunes_file_system (itunesfs), lets you organise your
assets (screenshots, description, keywords etc) in a specific file
hierarchy. Runningitunesfsproduces an intermediate YAML
configuration file and, if you haveitmspinstalled, it uses it to
generate the final .itmsp package. You can then uploaded it on iTunes
Connect using iTMSTransporter.InstallationDownload and install**python
3**. Python 2.x is not supported
at the moment.If you havePIPinstalledfor Python 3 type:$ pip3 install itunesfsOtherwise download the source fromhttps://pypi.python.org/pypi/itunesfs/and type:$ sudo python3 setup.py install(optional)Installitunes_transporter_generatorrunning:$ gem install itunes_transporter_generatorNote that you will need apple’s iTMSTransporter, to upload the package
at iTunes. If you have Xcode installed, you already have this tool on
your system.UsageOrganise your foldersYour files have to be under a root folder and organised as shown in the
“example” app, which is included in the package. Note that all files
should be encoded usingUTF-8..At the root folder, theconfig_app.yamlcontains the basic
configuration for the app.One or moreversionscan exist as folders under the root folder.Each version can have one or morelocales. The “master” locale,
that should always be available, is “en-US”.Each locale can have:theconfig-local.yaml, that contains locale related
configuration such as the title of the appthedescription.txt, that holds the App Store descriptionthekeywords.txt, that is a comma separated list of the
keywords. The spaces around each keyword, will be erased. Also a
warning will be produced when they exceed the App Store 100
character limit.ascreenshotfolder. It can contain ipad, iphone_3.5in,
iphone_4in, iphone_4.7in or iphone_5.5in subfolders. Each
device subfolder can have one or more screenshot files. The order
that they will be used is alphabetical.The “en-US” locale must always contain the following files:config-local.yaml,description.txt,keywords.txt. Even
though screenshots are optional, itmsp will fail to produce the .itmsp
without them.For the other locales, these files areoptional. If a file is not
found, the corresponding “en-US” file will be used instead.Generate the .itmspIf your Python 3’s bin folder is in yout PATH, thenitunesfscan be
executed from the command line.To generate the .itmsp packageIf you have installeditmsp,itunesfswill call it by default to
generate the package from the YAML file.:$ itunesfs <path_to_asset_folder>To generateonlythe intermediate YAML configuration file$ itunesfs <path_to_asset_folder> -t YAMLe.g.$itunesfs /example-tYAML: this parses the “example” directory
and generates anoutput.yamlfile under it.If you want to change the output directory use:$ itunesfs <path_to_asset_folder> -o <output_path> -t YAMLThis will also copy the screenshot files.Verifying and uploading the packageHere’s a really small guide for Apple’s iTMSTransporter.For ease of use, add this alias to your bash profile.run:$open~/.bash_profileadd this line and save:aliasiTMSTransporter='`xcode-select--print-path`/../Applications/Application\Loader.app/Contents/MacOS/itms/bin/iTMSTransporter'Using iTMSTransporter:Remember to escape with “” special characters like “$” in the password
field. Also the path can be either the path for one package or the path
for a folder containing one or more packages.To verify the package:$ iTMSTransporter -m verify  -u <username> -p <password>  -f <path_for_package>To uplaod the package:$ iTMSTransporter -m upload  -u <username> -p <password>  -f <path_for_package>More information:http://stackoverflow.com/a/17824838