Transcript
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
[Applause]
>> PAUL TURNER: Thank you.
Thank you, everyone.
Thanks for joining us here.
Thank you for joining
us for session 304.
Welcome. My name is
Paul Turner and I'm one
of the engineering managers
for iTunes, but I also --
some of the teams that I lead,
one of the teams is
the best teams at Apple
and that's the team that
manages the logistics
and release control for
all of Apple's own apps.
And we use iTunes Connect,
just like you guys.
So this is a new session
we're trying out this year,
this is iTunes Connect
Development and Distribution.
We already have the
wildly popular what's new
on iTunes Connect.
We just devoted an incredible
session to app analytics
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
We just devoted an incredible
session to app analytics
and maybe some of the
fundamental features
of iTunes Connect to make
sure that you are empowered
to make best use out of them.
That's what this is.
From the conversations
that I had in the labs,
I think we picked
the right topics.
Let's jump into them.
We will talk about
the help and resources
that are available for you guys.
I want to talk about
the vast resources
that are available very
quickly but then we will jump
into a demo of TestFlight.
Then we will briefly go
over some of the materials
that you need to launch
your app on the App Store
which will lead us into a deep
dive of transporter and XML
and how you manage them.
Sound good?
Sounds good, all right!
It's an interactive
presentation.
Stay with me here.
All right.
Let's jump in.
This screen should be
available to everyone,
this is iTunes Connect,
and here's all the
beautiful modules on this.
This is my favorite module.
My favorite module.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
My favorite module.
This is My Apps.
This is where you spend a
lot of your time, the bread
and butter of iTunes Connect.
This is where you
manage your apps
and manage your TestFlight
campaigns, manage versions
and manage your pricing
and availability.
My Apps, if this was
a physical button,
I feel like mine would
have the paint worn off,
because I'm always in there.
This is our baby.
Our baby's name is
App Analytics.
It launched this year.
It's really empowering you guys.
It's giving you data, I think
that only we can provide
because of the integration, and
it's really giving you a picture
of how your app exists in your
customer's hands and we do
that all the while
by maintaining your
customer's privacy.
So we love App Analytics.
I hope you caught
the session earlier.
It's amazing and as you can see,
we took the beta
badge off of it.
One more module I would like to
talk about, this is my protip
of the day and it's
not that big of a tip.
I already had a couple of
questions about it in the labs.
And it's the agreements,
tax, and banking section
and so this section -- my protip
is make sure you are caring
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
and so this section -- my protip
is make sure you are caring
and feeding for your
iTunes Connect by going
into the agreements,
tax, and banking section
and accepting your agreements.
I think one went live on
Monday, the unified agreement.
We had a couple of
questions in the lab.
My protip is make sure you keep
your account up to date and go
into your Agreements
and Tax and Banking.
It's a stellar tip.
Don't tell anyone.
This is Help and Resources,
resources and help.
This is all new.
We are revamping it.
We put as much design as the UI
designers let us put in there,
I don't know if you
caught the session earlier,
but we are putting it
outside the log-in screen.
It's fully searchable
and it will be great.
Help and resources.
Like I said,
it's outside the log-in and
it contains the best piece
of information you will ever own
and that is the developer guide.
This has everything
you need in it!
This tells you how to
launch apps and how
to get your assets ready and how
to interact with iTunes Connect.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
to get your assets ready and how
to interact with iTunes Connect.
Print it out, put it
under your pillow,
sleep with it, do
whatever you want.
The developer's guide is the
be-all and end-all document
and I hope you are reading
it and referencing it.
It has a lot more stuff.
It's 2015!
We have multimedia now.
We have some videos in there.
We have some deep dive videos.
A lot of you guys
have questions.
We read through the questions
and so we are making videos
constantly trying to to keep you
up to date, we have Agreements,
Tax, and Banking, TestFlight,
App Previews, App
Transfer, there as a video.
A lot of videos.
Check out these resources.
They are meant to help you.
Of course we have
the developer guide
but we have specialized
user guides,
one of which we will talk
about later in the session,
as the transporter user guides.
Deeper topics a lot of
specialized materials
and then last but definitely
not least, the FAQs.
We have this incredible
operations team that's
constantly going through
all the support requests,
all the developer posts,
anything, and everything,
trying to come up with
relevant FAQs for you guys.
It's likely that if
you have a question,
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
It's likely that if
you have a question,
it's answerable in the FAQs.
So that's resources and help.
I'm just going to move on here.
New also this year we have
iTunes Connect specific
developer forums.
I hope you are using them.
We have an incredible community
of developers out there,
which is you guys and
thousands of others
and if you have a question,
there's probably a place --
somebody else probably
had the same question.
It's self-help, questions
and answers.
It's a forum post,
that's moderated
and it's a fantastic
resource for you guys.
We would love to hear
your feedback on it.
We think it's doing
really great.
It's questions and answers
and support and it's not
for proprietary information
there.
Don't pass any passwords to your
accounts and things in there.
I will put up the
URL right here.
Quickly moving on to another
support resource that's
available, yes, AppleCare,
our friends at AppleCare.
We have iTunes Connect technical
support, via AppleCare.
If you go into help and
resources right now,
it's up in the top left
corner, it's called contact us,
and you can reach it via
the developer forums.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
and you can reach it via
the developer forums.
Then we can filter it down by,
I think 19 different categories.
We can get your issue
to the right specialist.
Sometimes you have a problem
with your account and you want
to ask somebody a question.
Go for it.
Ask us. It's there for you.
I have a little bit
of a surprise,
although I think it's
already out this in the wild,
but we have an 800-number now.
You can call us.
If you have questions that you
really need to somebody about,
the account, you can call
us on an 8-hundred number.
It rings to phone in my pocket.
No, I'm kidding.
Oh, it -- somebody is actually
calling -- there you go.
I will put that number
up right now.
You guys can write it down
or take a picture of it.
That's the iTunes
Connect technical support.
Nobody hummed.
Too bad. 1-800-633-2152.
[Laughter]
I had a bet with people
that I wouldn't sing.
There you go.
All right.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
All right.
I know you want to see
TestFlight and XML.
Here we go.
There's a couple
of other resources,
developer technical support.
Sometimes you read
the documentation,
and you have asked the
questions in the dev forums
and maybe you have
interacted with AppleCare
but maybe it's more of a
deeper engineering question.
Developer technical support
is always available to you.
Go and check it out and
also I really encourage you
to join our bug filing
community.
We really appreciate the
bugs that you guys file.
We read them and
prioritize them and fix them.
It's a great relationship
that we have with you
and I really appreciate it.
So join the community.
Lastly, I just want to reinforce
that there's some great articles
on the developer -- excuse
me, the developer section.
Developer portal.
This one, we talked about in
the new and iTunes Connect,
but I will put it up here again.
The app review is giving you the
most common rejection reasons
for your app not making it
through the first pass
through app review.
They keep it up to date.
It's fantastic.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
It's fantastic.
There are a couple of others.
There's a marketing video that's
available as well or excuse me,
a marketing article,
that's available as well.
It shows you how to make your
product page look its best.
Check it out.
These are great articles.
There's another one
on app previews.
All right.
So that's the help
and resources section.
I wanted to reinforce
those things and make sure
that you were empowered.
So, what do you do when you have
an app that's about ready to go?
You test it.
And what do you test it with?
You test it with TestFlight.
I would like to bring up my
good friend, Alex Miyamura
to give you a demo
of TestFlight.
[Applause]
>> ALEX MIYAMURA: Thank
you so much, Paul.
I'm Alex Miyamura.
I'm an engineer with the
TestFlight team I'm here
to show you how easy it is
to distribute your
app via TestFlight.
Now, we will begin with a
screen that is very familiar to,
I'm pretty sure everyone
in this room right now,
and this is Xcode.
I have an app that I
created open, Touch Fighter
and I'm going to upload
it up to iTunes Connect.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
and I'm going to upload
it up to iTunes Connect.
Now, in order to do that, I will
go up to product, and archive.
And one of the great things
about TestFlight is that instead
of having to upload
one beta build
and then also an App Store
build, if you find a beta build
that works for you and
you want to distribute
that to the App Store, you
don't have to do that again.
I can go ahead and click this
big button, submit to App Store.
Usually you would go
through the prompt
and would you deliver your
build to the App Store
but in the interest of time,
I'm actually going to switch
over to iTunes Connect, where I
have a build that's already been
-- a build that's already been
uploaded to iTunes Connect.
And here we go.
Thank you so much.
[Applause]
>> ALEX MIYAMURA: And so now
you will see the My Apps module
that Paul spoke about,
and we'll click in there
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
that Paul spoke about,
and we'll click in there
and see TouchFighter
is right in there.
We will click in there.
And you will see
the prerelease tab.
Now, of course, we are
TestFlighting these apps.
So we do care about prerelease
and we will go straight
into there.
And you will see we have
build two of version 1.0
and we actually get a lot of
questions from developers as to
where that comes from, right?
And I will actually
show you right now.
So we will go back to Xcode.
And we are in the
info.plist file for my app.
I will zoom in so everyone
can see and as you can see,
the bundle version
short string is 1.0.
That matches 1.0 that we
saw in iTunes Connect.
And the bundle version is 2,
which matches the build
number build number 2.
And test flight has
two types of testing.
We have internal testing
and external testing.
And first, we'll go
over internal testing.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
And first, we'll go
over internal testing.
Internal testing is used
to distribute your app
to a small select
group of testers,
within your iTunes
Connect organization.
These testers must be either an
admin role or a technical role
and you get 25 of them.
Each build that you distribute
is currently available
for 30 days, but
coming this fall,
we're actually going
to double that.
It will be available
for 60 days.
[Applause]
And so we will go
ahead and click
into the internal testers tab.
And you will see that
I'm here, Alex Miyamura,
and I want to invite one
of my colleagues Johnny
Appleseed to be a tester.
Oh, here's Johnny Appleseed.
He's a technical user and so
we can invite him as a tester.
And we will go to
TestFlight beta testers
and select his Apple
ID and hit save.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
and select his Apple
ID and hit save.
When we have done that, that
actually adds my colleague,
Johnny Appleseed as a
tester and if we go back
to the internal testers tab,
you can see that Johnny
Appleseed is now a tester
for this app.
Now for them to install
the app on their iOS device
on the TestFlight app, they
will check all the testers
that they want to invite.
Go to save.
And then go back to
builds and you will see
that we have a switch for
TestFlight beta testing.
We will go ahead and
toggle that switch
and that will send those invite
emails to all the testers
that you have selected.
As you can see, the build
is active for 30 days now.
And so once you -- once
you switched that switch,
you will see that I as a
tester have received an email
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
you will see that I as a
tester have received an email
from the iTunes Store, and I'm
invited to test TouchFighter
and I can go ahead and open that
in TestFlight, and tap install.
Now we will see that
the app installs.
It's ready to open.
You go back to your home screen
and then you will see
TouchFighter right there next
to the TestFlight app
and that orange dot next
to TouchFighter indicates
it's a TestFlight app,
that it's a beta app.
And so once your testers
are able to test your app,
they will give you feedback
and you will be able
to iterate on that.
You will want to distribute your
app to a wider range of testers
and for that, we have
external testers.
And so we'll go into the
external testers' tab
and the first thing that
you will see is, wow!
You have 1,000 of these as
compared to 25 internal testers.
That's 40 times and
coming this fall,
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
again, we will double that.
Instead of 1,000,
you will be able
to have 2,000 external testers.
[Applause]
So in order to add testers to be
external testers for your build,
you will click on the plus,
and you will add new testers.
You can obviously
type in the email.
But this can get really tedious
if you have 1,000
names to type in there.
You will be there for
a long, long time.
So that's why we have added
this option to import a file.
Now, we provide you with the
CSV template if you click
on the question mark next
to import file, but in order
to actually import
those testers,
you will click open import file,
and it will actually
populate all the tester names
and you will be able
to add the testers.
The one difference, other than
the large amount of testers
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
The one difference, other than
the large amount of testers
that you get as external
testing,
versus internal testing is
that for external testing,
do you have to submit your
app for beta app review.
We will go ahead and do that.
You have to fill in
some information.
Obviously, you need to tell
your testers what to test.
They need to see what
features you really want
to have them focus on.
You might be adding
something new
and you really want them
to drill down in it.
Feedback email is very important
because the whole point
of testing is to be
able to get feedback
and to be able to
improve your app.
So we do require that.
Privacy policy is something
that you add as well
and then your app description.
"This is the best app ever."
And we also require some
contact information,
so that if there is a problem
with your app, we will be able
to reach out to you, and so
that that can be get
resolved as soon as possible.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
that that can be get
resolved as soon as possible.
And once you fill
that information in,
you can click next.
And export compliance.
We have some export
labs here at WWDC.
This is a fairly simple app
and so we will go
ahead and click no.
We will submit.
And now you will see
that external testing
for build 2 is waiting
for review.
Obviously you can
remove it from review
and once your app
passes beta app review,
iTunes Connect will
send you an email
and then you can send invites
to all of your external testers.
And now back to Paul.
[Applause]
>> PAUL TURNER: Alex
what was it,
the best feature is
the one you don't have?
>> ALEX MIYAMURA:
No provisioning profiles
and no UUIDs.
>> PAUL TURNER: I will
make T-shirts that say that
and we're going to wear them
around town and everyone's going
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
and we're going to wear them
around town and everyone's going
to think we are the
weirdest people ever.
Before I bring up Mr. Nik Uglov
to do a deep dive into XML,
I just want to remind everybody
of all the materials needed
to launch an app
on the App Store.
We come to the end and we are
about to release and we go, oh,
my gosh, I have to get all
of those screen shots
localized or the privacy URL.
So let's take a look at
the store real quick.
App icons.
One for the app, one
for the watch app,
hopefully you guys are
doing an app preview.
We also have five
screen shots per device.
Just refreshing this
in your head right now.
Of course, now we take
Apple Watch screen shots.
Starting counting how
many screen shots.
Five per device and
28 localizations.
We have app descriptions.
We want to draw people
into your app
and make sure they
understand how
to use it before they buy it.
If it has a new version,
it's what's new text.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
If it has a new version,
it's what's new text.
And privacy policies and
especially if it's a kid's app
and EULAs and all
of these things
that you need to get together.
I think that's 840
screen shots possible.
We did the math there.
You know, fancy!
And we make it really easy on
iTunes Connect to get them in.
We have the drag and drop
wells that we reintroduced
and separated the sections and
made it a really powerful tool.
But maybe you have
more than one app.
Maybe you are updating your
screen shots frequently.
Maybe you have lots of apps and
lots of designers making all
of these screen shots for you.
Make you have a CMS system.
Maybe you have a corporate CMS
system, wouldn't it be nice
to hook up iTunes Connect to
your system and manage this
in an automated fashion.
And that's what we have to talk
about right now, Transporter
and command line automation.
Let's bring up my good
friend, Mr. Nik Uglov.
[Applause]
>> NIK UGLOV: Hi, everybody
my name is Nik Uglov,
I'm an engineering manager with
iTunes Store for content import.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
I'm an engineering manager with
iTunes Store for content import.
And as Paul just showed you
and kind of gave you a hint
that there's quite a lot
of data for you to enter
into iTunes Connect in
order for your app to appeal
to the widest possible audience.
The store's localized
in 28 languages.
So that's how many languages
you can localize the metadata
about your app for.
And it certainly
makes sense to reach
out to your potential
customers in the language
that they can understand.
There's up to five screen
shots to set up for each
of the devices that
your app runs on,
and those are localizable.
There rates and pricing
to set up.
In-app purchases.
Some of you have a few of those.
Some have hundreds, and
some have had thousands.
We have seen that.
And those are localizable.
And those have screen
shots in their own right.
Game Center achievements
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
Game Center achievements
and leaderboards also have
images and localization.
Are you counting?
That's quite a lot
of work there.
And for those of you who have
multiple apps on the store.
First of all, congratulations
and thank you.
But also that means that there's
that much more work
to do, right?
And really at that scale,
no matter how good a UI we will
put together in iTunes Connect,
it's still going to get
tedious and error-prone
to copy and paste that data.
No matter what we do,
it will not scale.
So let's take a look at
doing it some other way.
I will produce a command
line tool called Transporter
that manages inactions
between your environment
and iTunes Connect using
an app metadata XML feed.
The feed covers the
areas I just named,
the version level localization,
the rates and pricing,
and in-app purchases and
Game Center achievements
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
and leaderboards.
It's not new functionality
we are introducing.
We want to make sure that you
are aware of it and using it
and for those of you who
are new to the program --
new developers, by
the way, welcome --
we want to make sure that
you know that you have it
in your hands and ready
to take advantage of it.
This is a fully supported
robust functionality used
by developers like
you every day.
It's great for automation.
You are able to manage
your data in bulk.
And more intriguingly
integrate iTunes Connect
with your back-end systems
whatever those may be.
What I mean by that is suppose
we have already an asset
management system where the
screen shots are collected,
or maybe your contracting out
with some company that allows
to you localize that metadata
because you don't have
the speakers of all
of those languages in house.
So you take it back and you
need to park it somewhere.
You are holding it somewhere and
you have some sort of process
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
You are holding it somewhere and
you have some sort of process
that works for your company.
At that point, if you
have a system like this
or you are thinking of setting
it up, it becomes just a matter
of an XML export into a format
that we are about to see,
hook it up with Transporter and
put together a little harness
to capture any validation
messages we might send back
and you are on the
way to automate.
So a few basic rules.
The app itself, and the
version that you are trying
to target must already
exist in iTunes Connect.
You set those up first
and you are ready to go.
All of these state transitions
are done in iTunes Connect,
like submitting your
app for review
or submitting in-app
purchases for review.
The app binaries are
uploaded the same way they are
through today, through
Xcode or application loader.
No change.
And the feed itself is available
for iOS apps and
Mac apps equally.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
So how does this work?
First of all, it's a
two-way communication.
You use Transporter,
the command line tool,
and the first thing I suggest
you do is do a metadata lookup.
What this does is it retrieves
onto your local environment,
the current state
of the app metadata
as we have it in iTunes Connect.
So you download it in
a form of a package
which is just a fancy
word for a directory named
after your app SKU with
a .itmsp extension.
You crack one of those open
and you find a metadata
XML file in there.
This is the expression of
all the metadata we have
for your app so far and this
is the file that you would use
to make changes to
iTunes Connect.
You edit that file and you
add some screen shots to it,
any other assets
that you need to add.
You validate it, to make sure
that it passes all the rules
and if its, go ahead and upload.
So this forms a life
cycle of your interactions
with iTunes Connect
using Transporter.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
with iTunes Connect
using Transporter.
Download the package, edit XML
and add assets to it, validate,
and upload and repeat
over time as necessary
to achieve the edits
you are trying to get.
Let's take a look
at the commands.
This is for the metadata lookup.
This is to get the
information from us.
The command is iTMSTransporter
and the first method
or mode you want to explore
is the look up metadata.
Use your iTunes Connect user
name and you identify the app
that you are interested
in by the vendor ID.
The vendor ID is your app's SKU.
Not the bundle ID, not the
Apple ID, that's the app SKU.
Give where you would like
this to be deposited in.
You will get the
metadata XML data inside
and the reason I recommend
that you start this way is
that it's a lot easier
to start by example.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
that it's a lot easier
to start by example.
You are going to get a large
file captures all the details
and it's valid by definition
because it's actually
emitted from the store.
So you will see all the areas
where you can make edits to it
and it's a lot easier to put
it together than to start
from scratch from a spec. So
let's say you took that advice
and you added keywords and
added some screen shots
and a localization.
Go ahead and validate it.
Same command, Transporter,
different mode, verify.
You use your iTunes Connect
user name, and supply a path
to the package that you
have been working on.
That's the one that
has the metadata XML
and all the assets
that you have added.
So what is going to
happen here is we are going
to use exactly the same
rules that we apply
on iTunes Connect the web GUI,
to validate what
you have September.
We will check all the I.Ds.
We will check all the
required fields and the lengths
of the field and the
dimensions of the screen shots
that you are sending
to make sure
that they match the
devices that they are for.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
that they match the
devices that they are for.
If there are any errors,
we will report it back
to you right on the
command line.
And if you don't
have any errors,
then go ahead and upload it.
This is the same command,
transporter, iTMSTransporter
with a different mode, upload.
That's the only difference.
Your iTunes Connect user name
and the path to the package
that you have been
putting together all along.
So what's going to happen here
is we are going to actually run
through the validation mode
first, in case you skipped it,
we will apply it anyways.
Same rules as would
apply in iTunes Connect.
If there are any errors, they
will be reported back to you
and the upload will be blocked.
If there are no errors then
the app upload will succeed
and we will get it
on our servers and at
that point it's asynchronous.
So it's in the queue
to be processed,
alongside the binaries and
any other content we process.
And it might take a
minute or two for it to be,
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
And it might take a
minute or two for it to be,
as we say ingested and
appear on iTunes Connect.
You can actually use one of the
commands in Transporter to look
up the current state
of that process.
In order to take
advantage of all of this,
there are two pieces of
documentation that you need.
They are available
on the resources
and the help screen
on iTunes Connect.
The app metadata
specification for all the tags
and a Transporter user
guide for all the commands
and all the options
which is a lot more
than I will go through here.
All right.
We are ready to see that XML.
So this is what it
would look like.
This is how metadata
XML would look like.
There are required elements
forming a sort of envelope
around everything else.
So you have the package,
for your team ID.
You have software because this
is what we are discussing here,
right?
Your app is identified by the
vendor ID which is the app SKU
and then the software metadata
because this is what
you are about to send.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
because this is what
you are about to send.
Everything else is
optional elements.
They are optional in the
sense that only those
that have some changes,
only those that you
actually need to send in.
So, for example, if you
are making some changes
to the purchases, just
send that section.
This is not to say that you
can't send the whole thing
back in.
It is going to work fine.
Let's say you followed
that advice I had
about doing a metadata
lookup first.
You got the package and made
a few minor edits and decided
to send the whole thing
back in, perfectly fine.
That will work.
We are capable of seeing
where the changes are
and applying those and ignoring
the sections that didn't change.
It's all up to you
how to structure it.
So diving in, into this
-- into the package here,
just to call your
attention to the team ID,
is a value that you
received originally
when you created your
team account with Apple
and your app is identified
by the vendor ID
which is the app's SKU.
And the next step
depends on what it is
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
And the next step
depends on what it is
that you are trying to do.
Which area are you editing?
Let's say you are editing
some localization --
something about localization,
adding a description
or something like that.
Just like in iTunes Connect,
you get to select one of up
to two versions that you
are trying to target.
The one that's currently
on the store
and maybe the one
you are building
up for the next release.
So in the XML, would you do
that by using the iTunes Connect
version stream, version 1.5
or the 2.0 in this example.
And for the sake of argument,
let's say you are interested
in editing the 2.0 version.
So the next slide is we
are diving down into that,
and what's the next step?
Select a language you
are talking about.
So let's say in the -- in
iTunes Connect, would you do
that by using a pull
down for English.
In the XML, it would be locale,
name and the BCP47 tag
identifying the language.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
BCP47 is a format --
is a standard for
identifying any language spoken
on this planet, and I
think a few off the planet.
But they are only ones
that you can only use
in the feed are the ones that
the store is localized in.
So those are 28 and
they are listed
in the spec. Please take a look.
Let's say ENUS for US English
and diving further down.
Now we are finally down to
the actual data elements.
We have the title which is the
app name and the description.
We have the version
of what's new
if it happens to be an update.
And really, any element that
you encounter in iTunes Connect
at this point has a
representative tag in the XML.
I won't go through all of
them, other than to stay
for a few seconds
on screen shots
because those are just
a bit more involved.
For each screen shot,
you would need
to tell us what device
they are for.
So that's the dismay target
and all of the iPhones
and Apple Watch and
iPad and if it happens
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
and Apple Watch and
iPad and if it happens
to be a Mac app is
the option there
and which position you want
that screen shot to appear
on the store and they go
from one to five, remember,
up to five per device.
Specify the size of
the file in bytes.
The file name, which is of the
file that you would park next
to metadata XML in the package,
give us the MD5 checksum,
and onwards.
Let's say what you
wanted to do is set
up some pricing parameters
instead.
Like in iTunes Connect, and
I think you might be picking
up a theme here, that it's --
it's -- they are equivalent.
Most of these are
applicable worldwide.
So the XML product
equivalent section is
in the product for territory WW.
And at that level, you get to
state what your available date
for the app is, the sales
start date and things
like the educational
discount and also still
on the same level, also
territory WW for worldwide,
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
on the same level, also
territory WW for worldwide,
what is the pricing
tier for your app?
So here's wholesale price
Tier 3, corresponding
to the same option in the GUI
and the effective dates of it,
the start date and the end date.
Notice for a second that those
appear inside an interval tag,
which is itself an interval
section and what that builds
up to is the ability to do
this advanced scheduling
of your price changes.
So in iTunes Connect, for
example, here's a map that goes
on sale today for
five days, right?
Price Tier 3 goes down to price
Tier 1 and then comes back to 3,
exactly the same
way in the feed.
You have the initial interval,
and the wholesale Price Tier 3
and then it goes down to Tier 1
for five days and back up to 3.
Notice no end date there, which
means it's effective forever,
until you decide to change
that with a next update.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
until you decide to change
that with a next update.
What is available on
the per territory basis,
per country basis?
It's just the setting of whether
your app is available there
or not.
You can do that by
exclusion or inclusion.
In exclusion, you state
that it's available
for sale everywhere,
and then enumerate
through territories specifically
like Japan over there,
where you don't want the app
to be available for sale.
So that's one option.
The other one is inclusion,
exactly the opposite.
For territory WW, your app
is not available for sale,
meaning it's just not
clear for sale anywhere.
And spend specifically
enumerate the areas
where you want to
make it available.
In-app purchases.
This is the area where you can
probably get the most effect,
the most bang for the
buck for using the feed.
That's due to the sheer
number of in-app purchases
that some of your apps have.
This is where we have
seen the most activity
and this is a deep
enough section of the feed
that I won't go through
the tags here.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
that I won't go through
the tags here.
Please download the
documentation,
take a look there.
It's fully supported, what you
can do in the web interface,
you can do in the feed.
The same goes for
leaderboards and achievements.
Fully supported.
Everything you can do in a
web GUI, you can do in a feed.
Please download the
documentation,
study it, and take advantage.
So in summary, what you have
able to you is Transporter,
the command line tool for
managing the interactions
in your environment
and iTunes Connect
and app metadata XML feed for
all the areas that we covered.
And those are great
for automation.
They allow you to manage your
data in iTunes Connect in bulk.
You can get out of the
copy/paste business.
And you can integrate
iTunes Connect
with your back-end systems.
Whatever those may be.
So get your hands on two
pieces of information,
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
So get your hands on two
pieces of information,
app metadata XML
feed for all the tags
and all the formats there
and Transporter user guide
for all the commands and
all the options to them.
And automate away!
And with that, back
to Paul and thank you.
[Applause]
>> PAUL TURNER: Okay.
Thanks, Nik.
That was great.
Oh, my gosh!
I'm so lucky to work
with engineers like this.
All right, we are a
little pressed for time
and I will wrap it
up really quickly.
I want to let you know
that 1-800 song already
chartered on Apple Music.
You will see me at
the Grammys next year.
We took a look at
help resources.
I hope you use them.
Give us feedback on them.
I want to know what you need.
We took a look at TestFlight,
went over the resources
and then Nik's Transporter
and XML feeds.
For more information,
obviously the developer portal.
And you can contact our fearless
evangelist, Marc Malone.
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
And you can contact our fearless
evangelist, Marc Malone.
Some related sessions
already happened
but catch them on the replay.
The What's New in iTunes Connect
this morning was fantastic!
The App Analytics
lab was incredible.
I'm so happy that
you guys are here.
So come visit us and
have a great conference!
[Applause]