DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Data Engineering
  3. Data
  4. Working With iOS App Metadata From Linux Using Transporter

Working With iOS App Metadata From Linux Using Transporter

We take a look at how to use several open source solutions together to make working with iOS application metadata a little easier.

Shashikant Jagtap user avatar by
Shashikant Jagtap
·
Nov. 16, 18 · Tutorial
Like (1)
Save
Tweet
Share
17.12K Views

Join the DZone community and get the full member experience.

Join For Free

Apple announced a new AppStore Connect API at WWDC18 to communicate directly with the App Store. In order to know more about this API, refer to my previous blog post. This was clearly huge and game-changing announcement but Apple also announced other things which might get unnoticed at WWDC sessions on What’s New in App Store Connect, such as support for the Transporter tool on Linux platforms. This means that we can now use Linux servers to upload and validate iOS app metadata and previews. In this post, we will explore how we might use Linux servers to deal with the App Store using the Transporter tool.

iTMSTransporter

Before jumping into Linux, let’s explore what Transporter is and how it’s being used on macOS servers at the moment. The transporter tool is also known as iTMSTrasporter. An iTMSTransporter stands for iTunes Music Store Transporter, which is Apple’s Java-based command-line tool to upload app binaries, upload screenshots, update app metadata, manage app pricing, manage in-app purchases, etc. This utility comes with Xcode so there’s no need to install it explicitly as long as you have Xcode. The binary can be found here:

$ /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter

You can add the above to your $PATH so that you can use the ITMSTransporter directly from the terminal. Now we can explore various command line options that come with Transporter using  $ iTMSTransporter --help.

We can provide various options to the Transporter tool as specified in Apple’s official documentation here but we probably need few of them which are relevant to verifying and uploading metadata. In a summary, it’s three step process:

  • Download the .itmsp file stub package of an app using the lookupMetadata argument.
  • Verify the contents of the app package using the verify argument.
  • Finally, upload the app package to iTunes Connect using the upload argument.

Transporter can validate and upload metadata to the App Store, however, the uploading partners must be approved by the Transporter qualification process in order to use this delivery method. Previously used delivery methods are Signiant and Aspera. There are also third-party methods, not from Apple, that are available.

Installing Transporter on Linux

With macOS, Transporter comes up with Xcode so there is no need to explicitly install it.  While searching online, I found the location of the Transporter tool for macOS on this blog post which is:

https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/resources/download/Transporter__OSX/bin/

However, when it comes to Linux, there is no Xcode so we need to find the location of the binary hosted somewhere on Apple’s official server and install it on Linux. In order to install Transporter, we need to be logged in as a user that will be using the Transporter tool. Apple has the Transporter tool hosted according to content type, e.g for music: http://itunespartner.apple.com/music/tools. We have to select the Red Hat Enterprise Linux link to download the shell script installation package. We will get zipped package iTMSTransporter_installer_linux.1.9.8.sh.gz which can be then unzipped using suitable unzipping software depending on your Linux flavor.

$ gunzip iTMSTransporter_installer_linux.1.9.8.sh.gz

This package has a shell script that we need to run explicitly using the admin user.

$ sudo sh iTMSTransporter_installer_linux_1.9.8.sh

This might ask users to accept a Licence Agreement and, once done, we will have Transporter tool installed at the location /usr/local/itms.

Using Transporter on Linux

There are loads of command line options to use Transporter tools for various purposes; these are discussed in Apple’s official documentation here.

Remember that a Linux server is just a way to talk to the App Store. We need to have the app already in App Sore Connect. We still need to authorize ourselves using our App Store credentials. There were to methods used previously which are Signiant and Aspera. However, with the new App Store Connect API, we can use JWT tokens for uploading metadata and assets. We can create JWT tokens using the following process once we generate a new API key and download the Private key from App Store Connect. Please watch the WWDC Session, Automating App Store Connect, to understand the whole process. You can refer to my previous blog post on generating tokens for App Store Connect API here to understand the entire process.

We can use the same kind of Ruby script as mentioned in that post on our Linux server to generate tokens and deal with App Store Connect.

Conclusion

As many Continuous Integration servers are still Linux-based, we can use these same servers to upload pre-generated iOS app metadata to App Store Connect. We can still use existing Cloud Infrastructure to perform this things. However, I doubt how many of us will use this feature as we have various macOS servers hosted on the cloud already. However, it’s good to know that it can be done from Linux servers as well and maybe someone can benefit from it if it fits in their infrastructure/workflow.

app Linux (operating system) Metadata App Store (iOS/iPadOS)

Published at DZone with permission of Shashikant Jagtap, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Data Engineering Trends for 2023
  • Why the World Is Moving Towards Serverless Computing
  • When Scrum Feels Like Dressing for Dinner
  • Pair Testing in Software Development

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: