Friday, June 24, 2011

App submission - try, try again

Ok. We are back into our continuing saga of submitting the app for a client to the app store. When we called it quits last night, we were in the middle of a Bataan death march to a bewildering and expanding series of steps which would lead to the pot of gold of just getting the app submitted.


Ok, let's venture over to that url in Safari and see where we're at as far as that goes.

Ok, that's the IOS Provisioning Portal. It has tabs for Development, Distribution, History and HowTo.

Ok, but where's the list of instructions I was following?

It was somewhere like this:

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





Ok, so that's the one with this Bataan death march sequence:

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


Ok, So, I was hopefully getting near the end of 1. I had just saved a p12 private key.


Create and download your iOS Distribution Provisioning Profile for App Store Distribution

To successfully build your application with Xcode for distribution via the App Store, you first need to create and download an App Store Distribution Provisioning Profile.

What could this entity possible be?


These are different than the Development Provisioning Profiles that were used earlier in that Apple will only accept applications if they are built with an App Store Distribution Provisioning Profile.

Ok. So, it's something I need to do. I think the development provisioning profile was for a device? I forget.

Note: App Store provisioning profiles do not allow for a distribution built application to be installed on an Apple device. To install your distribution ready application on a device, you must create an Ad Hoc provisioning profile.

Ok, I'm not worrying about ad-hoc right now.


Team Agents should navigate to the Provisioning section of the Provisioning Portal and select the Distribution tab.

Done.

Select the App Store radio button.

Ok. where is that? I don't see it.

Let's go to "howTo"


:A Provisioning Profile is a collection of digital entities that uniquely ties developers and devices to an authorized iOS Development Team and enables a device to be used for testing. A Development Provisioning Profile must be installed on each device on which you wish to run your application code. Each Development Provisioning Profile will contain a set of iOS Development Certificates, Unique Device Identifiers and an App ID.

Devices specified within the provisioning profile can be used for testing only by those individuals whose iOS Development Certificates are included in the profile. A single device can contain multiple provisioning profiles.

Creating a Development Provisioning Profile
Installing a Development Provisioning Profile
Building and Installing your Development Application"

No - the above is Development provisioning profile.

// note - this processs is endlessly confusing. You can see plainly how it said
"Create and download your iOS Distribution Provisioning Profile for App Store Distribution

To successfully build your application with Xcode for distribution via the App Store, you first need to create and download an App Store Distribution Provisioning Profile. "

// and then said:

Team Agents should navigate to the Provisioning section of the Provisioning Portal and select the Distribution tab.

Select the App Store radio button.


// Yet there is no app store radio button. Plah.


Let's google this:

"App Store Distribution Provisioning Profile:"

Here something at:

http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/145-Distributing_Applications/distributing_applications.html

Distributing Applications

When you’re ready to distribute your application for testing or for general distribution through the App Store, you need to create an archive of the application using a distribution provisioning profile, and send it to application testers or submit it to iTunes Connect. This chapter shows how to perform these tasks.



Publishing Your Application for Distribution

When you’re ready to publish your application for general distribution through the App Store, you submit it to iTunes Connect.

This section describes how to prepare your application for submission and how to submit it to iTunes Connect.
========================================================

Creating a Distribution Profile for Your Application

To create a distribution profile for your application:

Create a distribution provisioning profile in the Portal with these characteristics:

Distribution method


App Store

Profile name


Distribution Profile

App ID


The appropriate application ID for your application.



Download the distribution profile and install it in the Xcode Organizer.

Drag the .mobileprovision file to the Provisioning Profiles list under DEVELOPMENT in the Organizer.


What? That's it? No go there, do this, do that?

Ok, let's go back here:

https://developer.apple.com/ios/manage/provisioningprofiles/viewDistributionProfiles.action


Team Agents should navigate to the Provisioning section of the Provisioning Portal and select the Distribution tab.

// Done

Select the App Store radio button.

// Let's try the "New Profile" button. That's the only possibility.

Enter the name for your Distribution Provisioning Profile.

Distribution Profile


// also selecting "App Store" instead of "Ad Hoc"

Confirm your iOS Distribution Certificate has been created and is displayed.

// There's nothing there. But, I've created it before.

Select your wild-card App ID to build all of your applications with your single Distribution Provisioning Profile.

// I didn't select a wild card. I'll just go with the app I uploaded. It's available on a drop-down box.

Click ‘Submit’.

// Ok. We now have:

// Provisioning profile app id Status
// My Quiz App Distribution Profile SN6LAS6AYP.com.factorenterpris... Active

Click on the name of the Distribution Provisioning Profile to download the .mobileprovision file.

// downloaded..

Drag the .mobileprovision onto the Xcode or iTunes icon in the dock to install.


// done - and the inevitable problem:

"A valid signing identity matching this profile could not be found on your keychain".

// Quel surprise. Well I put three identities into the keychain.


Let's check goole for that error.

Here's a good possible link:

http://stackoverflow.com/questions/999313/iphone-app-signing-a-valid-signing-identity-matching-this-profile-could-not-be-f

I'm trying this, but it might only work for developer...

After carefully going through the thread here and checking all the solutions proposed by people, I can confidently claim this, after following the steps mentioned at the Apple developer account for creating CSR and mobile provision file, just do this!,

Launch Xcode.
Select window->Oragnizer
Click this refresh button and that filthy yellow bar will remove instantly.

// Well, maybe I didn't install the .p12. But when I double click on it, I get a couple of passwords. But, when I try my own,
// maybe I entered the wrong one, I get this:

// MAC verification failed during PKCS12 Import.

This one got a lot of votes.

I had the same problem: I first downloaded my certificates to my small MacBook while on the run. When trying to install the certificates on my iMac... then I ran into the problems described on this page.

After spending hours pulling my hair out like many of you, I performed the following steps to fix it:

Close all your stuff except your webpage that should be logged into App Dev center.

Open Xcode. Click WINDOW > ORGANIZER > select "Provisioning Profiles" on the left. That should bring up your provisioning profiles. Highlight one by one (if more than 1), right click and delete profile. Yes, just do it! Delete them all! (I kept making a new one after a new one trying to make the thing work.)

From the first page you see after logging into the App Dev Center on the right side click "iOS PROVISIONING PORTAL" > (do not "launch assistant"). Instead click on the left side. Select CERTIFICATES. You will probably have just one line listed with your name/company - from there click on the right side REVOKE. Click OK to verify that's what you want to do.

On the same page click DEVICES. Click the box next to your device you are trying to provision and click REMOVE SELECTED. Again click OK to verify.

Wait about 2 minutes to let Apple do their thing.

Now click on "HOME" that is on the left side navigation.

Click "Launch Assistant"

create a new app ID - call it whatever you want. Just make sure it's unique enough to know that's the one you just created because the others you've been messing with all day will not be deleted from Apples Dev Center.

You should be able to follow the rest of the Assistant without troubles -- the main thing is you just had to delete your old provision profiles and start over.

Good Luck!

Sheesh. I'm walking through the whole damn thing again. Creating a new App Id and everything. Maybe it's for the best.

Ok; after creating the new app, I'm back to keychains again:

aunch Keychain Access

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

Within the Keychain Access drop down menu, select Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority

Ok, this time give it a specal name cccert4...basically it has cert 4 in it. It's an cly's upload folder.

In the Certificate Information window, enter the following information:
In the User Email Address field, enter your email address
In the Common Name field, create a name for your private key
(eg. John Doe Dev Key)
In the Request is group, select the "Saved to disk" option
Click Continue within Keychain Access to complete the CSR generating process

// Damn. The cert name is still showiny up as cly carson. How did that happen. Damn.

// Well, here's my description: Cly Carson Cert4

// It has my ipod touch id.

// Ok, it's generated.

// Profile is Cly Carson Cert 4
// Cert name is Cly Carson


// Ok, I deleted the old provisioning profile (under my name) and put it under his name.

Step 3: Verify Provisioning Profile Installation

Your Provisioning Profile file should appear in the "Provisioning" section within the Summary tab of Xcode's Organizer window.

// Ok, it's there.

// Next

Step 1: Download

Download & Install Your Development Certificate

Ok, this is called:

developer_identity-1.cer

Step 2: Install

On your Mac, double-click the downloaded .cer file to launch Keychain Access and install your certificate.

// now this is going to put it into the keychain

// ah, there it is. His private key is under cly carson cert 4. Now I have it identified.

Step 3: Verify your private and public keys in Keychain Access

Verify the iOS Developer private and public keys are paired together in the Keychain Access application to ensure your Certificate is properly configured on your Mac.

// Yes, under Keys. Perfect.

Ok, try to run it. Error - he appears more than once on the keychain. Delete all but the most recent.

Now, it just crashes; clicking on error only says gc exited. A green check next to the the file with the app id.

But now, if I start the simulator, it works. Then, start it on device in debug, and it works. But, I don't like the "your company your domain" in that file. It's going screw me up for sure.

How can I fix that?

Ok, that problem is solved. It turns out you need to edit the /project.pbxproj to fix it.

Ok. Let's post this for now, and take a break. My eyes are getting bleary. This is a monster.

No comments:

Post a Comment