skip to navigation
skip to content


Script (python3 atm) for generating an iTunes Connect package (.itmsp) straight from your file system

Latest Version:

Script for generating an iTunes Connect package (.itmsp) straight from the file system

The task of uploading and managing 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 at is increased accordingly. Apple’s iTunes Transporter CLI gives you the ability to 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 requires editing a YAML file and exports the final .itmsp package. However, when multiple localized assets are involved, this leads to a huge unmanageable YAML file.

This package, itunes_file_system (itunesfs) requires that you just organise your assets (screenshots, decription, keywords )in a spesific file hierarchy. Running itunesfs produces an intermediate YAML configuration file. If you also have itmsp installed, itunesfs can use it to generate the final .itmsp package that can be uploaded on iTunes Connect.

Essentially, itunesfs, by itself, performs the following coversion:



  1. Download and install python 3 Python 2.x is not supported at the moment.

  2. If you have PIP installed for Python 3 ( type:

    $ sudo pip3 install itunesfs

    Otherwise download the source from and type:

    $ sudo python3 install
  3. (optional) Install itunes_transporter_generator Run:

    $ gem install itunes_transporter_generator


Organise your folders

Your files have to be organised as shown in the “example” app, which is included in the package. Note that all files should be encoded using UTF-8.

file hierarchy

  • At the root folder, the config_app.yaml contains the basic configuration for the app.
  • One or more versions can exist as folders under the root folder.
  • Each version can have one or more locales. The “master” locale, that should always be available, is “en-US”.
  • Each locale can have:
    • the config-local.yaml, that contains locale related configuration such as the title of the app
    • the description.txt, that holds the App Store description
    • the keywords.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.
    • a screenshot folder. It can contain ipad, iphone_3.5in or iphone_4in 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 are optional. If a file is not found, the corresponding “en-US” file will be used instead.

Generate the .itmsp

If your python’s bin folder is in yout PATH, then itunesfs can be executed from the command line.

To create the YAML configuration file

$itunesfs <path_to_asset_folder>

e.g. $itunesfs /example: this parses the “example” directory and generates an output.yaml file under it.

If you want to change the output directory use:

$itunesfs <path_to_asset_folder> -o <output_path>

This will also copy the screenshot files.

To create the .itmsp package

If you have installed itmsp, switch to the directory where output.yaml is. Make any further chagnes on “output.yaml” and run:

$itmsp package -i output.yaml
File Type Py Version Uploaded on Size
itunesfs- (md5) Source 2014-03-12 204KB
  • Downloads (All Versions):
  • 15 downloads in the last day
  • 151 downloads in the last week
  • 701 downloads in the last month