Thursday, June 23, 2011

Submitting the app - part duex - or trois

Ok, now that we've got our materials gathered, I just want to get rid of a problem I thought I had gotten rid of, which is apostrophe's in the text data showing up as garbage. Let's find one in the XML file:

Well, I got one, but it wasn't the same one. I just added a space between it and the question mark, and the problem disappeared. Scary that the other one didn't show up.

Ok. I have to hang in there. Let's get some music going on.

Ok. How do I submit this thing now? Well, let's just log in under the client's name again.

Ok, you have to go to iTunesConnect, and select manage accounts, then add app.

After entering the language and the company name, we get this:

You have no eligible Bundle IDs for iOS apps. Register one here.

The problem is the app ID is under my developer account. I think I just should create a new one for this.

Here's what App id means:

App IDs are an integral part of the iOS Development and Provisioning Process that allows an application to communicate with the

Apple Push Notification service and/or

an external hardware accessory.

In addition, an App ID can also be used to share keychain data (such as passwords) between a suite of applications

and share document and configuration data between your applications using iCloud.


Ok, we won't be doing any of that with this.


An App ID is the combination of a

unique ten character string called the "Bundle Seed ID"

and a traditional CF Bundle ID (or Bundle Identifier).

// A traditional CF bundle id? Traditional as in, like, Christmas traditions?
// What's a CF? What's a Bundle? Name Value pair, probably, like a plist.


The Bundle Seed ID portion of your App ID can be utilized to share keychain access between multiple applications you build with a single App ID.

// That's just swell.

In addition, it can be incorporated into any external hardware accessories you wish to pair your iOS application with.

// Fabulo. Can I just submit my app?

Registration of your App ID is required to utilize the Apple Push Notification service (APNs)

// Tops on my list.

and to register an application to incorporate In App Purchases.

// Yeah, well that could be useful down the line.


The Bundle Identifier portion of an App ID can be substituted with a wild-card character (asterisk '*') so that a single App ID may be used to build and install multiple applications.

// Might go with this.


If the wild-card character is not used, the Bundle Identifier portion of your App ID must be input as your CF Bundle ID in Xcode to allow the application to install on your device.


// Ok, so I will need to do this when I'm starting my next app.


The Bundle Seed ID portion of your App ID does not need to be input into Xcode.


Wild-card App IDs cannot be used with the Apple Push Notification service or for In App Purchase.

// Ok; I will need to use thes "traditional" CF Bundle, just to not eliminate those
// options.

// One problem is going to be namespace - I already have it registered under the name.
// I'll just jigger it.

here's the app name:

My Quiz App

Here's the bundle identifier:

com.mydomain.myquizapp


Ok, here's what we have:

ALPHANUMERIC.com.mydomain...
My Quiz App Configurable for Development
Configurable for Production
Enabled Enabled Configurable Configure

Well, so I've done that. How to submit it? Let's try distribution.

http://developer.apple.com/ios/manage/distribution/index.action

OMG.


Distribution


The distribution area of the iOS Provisioning Portal is where you will prepare and learn how to submit your iPhone and/or iPod touch application for delivery via in-house or Ad Hoc distribution.

// Holy mother of God. This is like freedom through work.


For information about distributing your application on the App Store, please see the App Store tab.

Obtaining your iOS Distribution Certificate
Create and download your iOS Distribution Provisioning Profile for App Store Distribution
Creating and Downloading a Distribution Provisioning Profile for Ad Hoc Distribution
Building your Application with Xcode for Distribution
Verifying a Successful Distribution Build
Updating your Application

Doh...

Ok. I go here:

http://developer.apple.com/appstore/

Prepare for App Submission

Ok, I actually went through most of that in the previous step.

I just noticed I need a 50 x 50 icon as well.


Ok. Where was I? I just had to pick up my wife at the station.


Ok, well, I was able to upload the icons and give the application description and all, but now I'm stuck - I'm trying to upload the binary, and for some reason I can't get the uploading application to see it. I think maybe I need a distribution certificate? I dunno...maybe a mismatch on the name...



Submitting a Certificate Signing Request for Approval
After creating a CSR, log in to the iOS Provisioning Portal and navigate to ‘Certificates’ -> ‘Distribution’ and click the ‘Add Certificate’ button.
Click the Upload file button, select your CSR and click ‘Submit’. If the Key Size was not set to 2048 bits during the CSR creation process, the Portal will reject the CSR.
Approve your iOS Distribution Certificate.


Only Team Agents are authorized to prepare and submit applications for distribution.



http://developer.apple.com/ios/manage/distribution/index.action

Ok, I completely was unable to get back to this from the menu, but it looks this this whole sh*t need to be done:

Obtaining your iOS Distribution Certificate
Create and download your iOS Distribution Provisioning Profile for App Store Distribution
Creating and Downloading a Distribution Provisioning Profile for Ad Hoc Distribution
Building your Application with Xcode for Distribution
Verifying a Successful Distribution Build
Updating your Application


Obtaining your iOS Distribution Certificate


Ok, here we go:


To request an iOS Distribution Certificate, you first need to generate a Certificate Signing Request (CSR) utilizing the Keychain Access application in Mac OS X Leopard. The creation of a CSR will prompt Keychain Access to simultaneously generate your public and private key pair establishing your iOS Distribution identity. Your private key is stored in the login Keychain by default and can be viewed in the Keychain Access application under the ‘Keys’ category. To generate a CSR:

In your Applications folder, open the Utilities folder and launch Keychain Access.

Done.


In the Preferences menu, set Online Certificate Status Protocol (OSCP) and Certificate Revocation List (CRL) to “Off”.

Done.

Choose Keychain Access -> Certificate Assistant -> Request a Certificate from a Certificate Authority.

Note: If you have a private key highlighted in the Keychain during this process, the resulting Certificate Request will not be accepted by the Provisioning Portal. Confirm that you are selecting “Request a Certificate From a Certificate Authority...” and not selecting “Request a Certificate From a Certificate Authority with …”

Ok. I'm picking my clients key - I have two of them - neither of them are the ones I've used to test the application.

I've created yet another certificate request - this is the third one, for my client. I think they're all the same.


Submitting a Certificate Signing Request for Approval

After creating a CSR, log in to the iOS Provisioning Portal and navigate to ‘Certificates’ -> ‘Distribution’ and click the ‘Add Certificate’ button.

Ok. I think I have to add a developer profile for the client.

Click the Upload file button, select your CSR and click ‘Submit’. If the Key Size was not set to 2048 bits during the CSR creation process, the Portal will reject the CSR.
Approve your iOS Distribution Certificate.


Well I just used the certificate I created this morning, 100% sure it was under his name/email, and now it says pending issuance. That's not good, I remember mine being immediate.

This in in the provision portal, under the development tab.

http://developer.apple.com/ios/manage/certificates/team/index.action?actionName=index


Name Provisioning Profiles Expiration Date Status Action

John doe Pending Issuance

It also says,

*If you do not have the WWDR intermediate certificate installed, click here to download now.


I don't remember anything like this.

Ah, the development license was issued. Let's check the distribution.

Ah, it was issued to.

Ok, let's go straight to the disbutution.

Download...

Ok, I have both

AppleWWDRCA.cer

and

distribution_identity.cer

In my folder.

Move on.


Submitting a Certificate Signing Request for Approval

After creating a CSR, log in to the iOS Provisioning Portal and navigate to ‘Certificates’ -> ‘Distribution’ and click the ‘Add Certificate’ button.

// There is no add certificate botton


Click the Upload file button, select your CSR and click ‘Submit’. If the Key Size was not set to 2048 bits during the CSR creation process, the Portal will reject the CSR.
Approve your iOS Distribution Certificate.

I'm going to go ahead and say I've been issued the cert.

I requested instead of added, but otherwise it's pretty much the same and there's something listed there. A current distribution certificate is issued.

Ok; what next?

Back to this:
http://developer.apple.com/ios/manage/distribution/index.action

Downloading and Installing iOS Distribution Certificates

In the ‘Certificates’-->’Distribution’ section of the Portal, Control-Click the WWDR Intermediate Certificate link and select “Saved Linked File to Downloads” to initiate download of the certificate.

Ok.

After downloading, double-click the certificate to launch Keychain Access and install.

Ok, I've double clicked and I'm getting the keychain "login" in a dialog that says "Do you want to add the certificate(s) from AppleWWDRCA.cer to a keychain?

Wtf do I know? I guess I have to. I don't even understand the purpose of a keychain.

Why is it "login"? Do they mention that?


Ok. Now what.


Saving your Private Key and Transferring to Other Systems

// ok this was certificate 2 for him.


It is critical that you save your private key somewhere safe in the event that you need to build your application on multiple Macs or decide to reinstall your system OS.

Without your private key, you cannot sign binaries in Xcode and there you will be unable to upload your application to the App Store or install your application on any Apple device.


When a CSR is generated,

// what is a CSR??

the Keychain Access application creates a private key on your login keychain.


// Oh, so that's what the login meant.

This private key is tied to your user account and cannot be reproduced if lost due to an OS reinstall.


If you plan to do development and testing on multiple systems, you will need to import your private key onto all of the systems you’ll be doing work on.


To export your private key and certificate for safe-keeping, open up the Keychain Access Application and select the “Keys” category.


Highlight the private key associated with your iOS Distribution Certificate and select “Export Items” from the ‘File’ menu. Save your key in the Personal Information Exchange (.p12) file format.


Damn - I have 3 public / private key pairs with exactly the same name. I don't know which one was the one generate on may 25, the one this morning, and the one just now.

Actually, I'm not even sure I installed the one just now - ugh. I'm just going to stop


Well, if I order it by date modified, his private key shows up as the last (or first). So, that must be the one.



You will be prompted to create a password which will be used when you attempt to import this key on another computer.
You can now transfer this .p12 file between systems. Double-click on the .p12 to install on a system. You will be prompted for the password you first entered above.

In the same area of the Provisioning Portal, click on the name of the iOS Distribution Certificate to download.
On your local machine, double-click the downloaded .cer file to launch Keychain Access and install your certificate.


Ok, I saved it to the "download certificates folder". That's a wrap for today. I'll pick up up tomorrow.

No comments:

Post a Comment