Test the app that I send to AppStore - iphone

I send a new version of my iPad app to AppStore. The Apple will now validate it.
But, I want to have absolute certainty that NOTHING gone wrong. I have the Archived file and want to run it.
Ok, I can build a new program and run it in the device. But I want to test the exact file that I sent.
I tried to create a .ipa file but it give-me problem with "code signed". Run the file in simulator is a good idea. So, there are a easy way to run my new version?

You cannot install on our own device an app you build and is signed with your distribution certificate. Put another way, the build you submit to Apple cannot be directly installed by you on your device.
If you build any other way such that you can install that build on your device, it's the same code as you would otherwise be sending to Apple in a distribution build.
I have had the same desire, actually. I have an app with a conditional build setting based on whether it's a distribution build or not. For a distribution build, we have a production API URL, but for all other builds the URL is a development sandbox URL. So, I know how you feel! I wanted to be able to test the actual build sent to Apple to make sure it was hitting the correct production URL. I couldn't. I had to trust. :-)

I'll assume you're using Xcode 4; details will be different if you're using Xcode 3.
Once you've created an application archive, you can select the archive in the Organizer and click the Share... button to e-mail it to yourself and/or your testers. Xcode will let you sign it with your developer key, so you can install it on your device. When you're satisfied with the app, you can then validate and submit the app to the app store, again from the Organizer window. You'll re-sign the app with your distribution key and the application will be uploaded to iTunesConnect.

Just make sure your project and your target Build settings are absolutely 100% identical between your final Release build and your Distribution build, except for code-signing. Then do a clean build of both, one after the other, and QA the final Release build before submitting the Distribution archive.
After Apple approves the app, delete the app from one of your devices, and buy your app from the App store. That's the only way to get an exact customer download with the full customer experience. You'll get back 70% of the purchase price in a couple months; the other 30% is likely a very small part of your total development and testing cost.

Related

How can I test my signed app on an unjailbroken iOS device

As part of our software development life cycle, we want to make sure that the binary we test in house before pushing to iTunes, is the same as the binary that we push to iTunes. I know that sounds really silly, but it's a matter of checks and balances in a mid size company, so that the testers can be sure the coders didn't add in anything after testing occurred.
So is there a way to run a signed/certed app on a device that's not jail broken? Or is there a way to verify that an IPW is the exact identical code in the zip that gets pushed to iTunes?
Or possibly a way to accomplish my goals with a different way?
We have a valid developer account and around 15 different devices that are not jail broken. Would prefer to test with them left stock and not jail broken.
If you compile your app for distribution using an ad-hoc profile you can later take that archive and resign it with the appstore profile and upload it.
You can't however upload an application that was compiled with an development certificate.
A binary signed to go to the App Store cannot be run on devices via the normal ways. You can test the code by having the developers create an Ad Hoc build. This will have the same functionality as the App Store version, but you can test it.
Unfortunately, when the app is recompiled for the App Store, more code can be added.
Do you not have access to the code to test? If you must, you can have them create an adhoc in front of you, test it, and then recompile for the app store all in front of you. Seems a bit overkill, however.
There is with another trick:
first test you code for functionality's, buggs in normal way.
Than push the code to AppStore, but set the release date farther with 3 weeks, while your testers are validating it is that what they tested last time or not. Somewhere here, I have read that possibility forgot where. Never tried!

Testing on a second iPhone

I have developed my first full fledged iPhone app, and tested it on my phone. I would like to have it tested by one of the contributing graphic artists on their iPhone. They live in another state so I do not have access to their device. I added their Device ID to the apple portal.
A couple of questions:
I do not see the device show in Xcode when I hit refresh. Should I be seeing it?
Which executable file(s) do I send to them?
Look at testflight. It makes distributing apps very easy. Since you have already included the designers device ID, all you have to do is:
Sign up to test flight
invite the designer and tell him to register and add his device info
go to apple developer portal - provisioning - distribution and create a new distribution profile (don't forget to add the designers device when creating the profile), download and open the certificate (which will be shown in Xcode's Window>Organizer) - make sure that the correct certificates are selected in your build settings.
make sure that iOS device is selected ( and not the simulator) now in Xcode go to Product>Archive, when the archive is shown click distribute>adhoc distribution
this will create an IPA file.
upload this to test flight and follow the instructions to select the designer from your team.
Use TestFlight. It's free, takes 5 mins to install their API, and gives step by step instructions on how to push your app to any tester over the air.
Add their device id to your developer account, Update your adhoc profile (which you are using for running your app on device) attach their device with this profile. Now again sign your build with updated profile and give this APP file and provisioning profile to others or upload it on TestFlight.

Putting my iPhone app on my phone to test?

How do I take my working iPhone app and put it on my phone to test with? I dont seem to see how and my googleing doesn't turn up what I think I am looking for...
I am a registered developer and have paid my $99 already.
Would anyone know?
Note: I have already placed the same answer somewhere else for the same question.
There are some steps you need to follow to test your app on your personal iPhone. Below you can find all the steps:
Create a MAC certificate at first step.
Upload that certificate to developer account.
Open developer account at https://developer.apple.com
You can now find an option for device id in your developer account on left side.
Register your iPhone device.
It is time to create your unique identifier on developer account, download your certificate and install it on XCode organize
Now open your project and embed your unique identifier in your project.
These steps can be beneficial for all software testing gusy involved in mobile application testing.
You need to register as an Apple developer. This will cost you $99/year.
That is the only way that I know of apart from Jailbreaking your phone.
Open Xcode Organizer window and provision your device for development. This will register the device UID with Apple and install the development provisioning profile on it. If you don't have provisioning profile, Xcode will create one automatically.
Once this is done, you need to set your build to use your DEV cert to aign your app. Then you can switch the build configuration from Simulator to Device and build and run on your phone.
Did you just complie your project or you complied and Run? If you Build your project and you have no errors it means everything it's ok. The next step is to Build and Run your project or just Run your project.
If you Run your project and nothing happens it means that you have something worn in your target configuration. Did you change anything there? In the Project Tab in your XCode go to Edit Active Target Settings and check that your Base SDK and Target SDK match your iDevice SDK.
IF you don't find out what the problem is, contact me, i could help you in anything you need.

How to test the final distribution build before submitting it for review to the iPhone app store?

I have developed an iPhone App and I want to test this final distribution build before submitting it to the App Store for review.
Is there any safe way to make this app to run on a device?
You might want to also check out Craig Hockenberry's "The final test" blog post.
Craig gives a method of testing where the only difference between what you test and what you submit is the signing identity.
No, you can't. This makes me a little nuts, too. If you set up an ad-hoc distribution profile, that is as close as you can get. On the "positive" side, you're guaranteed to have your app rejected if it can't be installed properly...
check this out, you can actually test a distribution build :
http://nikhilkerala.blogspot.com/2010/12/how-to-test-app-store-distribution.html
You can setup a beta through the iPhone portal program. You can then load the App and the associated profile onto a phone through iTunes or XCode.
I know this question is a little old, but I've recently found a better way of testing and distributing my Apps prior to submission and this method allows me to easily get it on real devices without having to have the device physically in my hands or have the user muck with provisioning profiles, certificates or iTunes syncing.
Developers can create an account on TestFlight and create a team.
After creating a team, invite testers to your team (click "Invite a Teammate" on the team's page). The tester will receive an invitation email to join your team and will be walked through the process of creating a basic account (name, email, password) and will have their device registered and their account will be added to your team.
Once you have your testers in place, go to your team's page and select all the testers, export their device information via the link and import that list into an Ad-Hoc distribution profile.
Import that profile (and the Ad-Hoc certificate) into Xcode and rebuild your project and share it as an *.ipa file.
Go back to your TestFlightApp.com team's page and upload the binary. All the testers on your team with access to the build will get an email notification about it. All they have to do is click "Install" in the email and they will be taken to a TestFlightApp.com page that will install the App on their device over the air, no iTunes, no mucking around with profiles, etc.
I tested it this morning actually and I'm very impressed with how easy it is and it also happens to be free.
It is actually possible to install the distribution build if you have once previously installed an Ad Hoc build on your phone. Most people simply never tried it =)
And no jailbreak is required. For step by step instructions, see my answer here:
Testing App Store "Distribution" version

Whats the best workflow for adding a new device to an adhoc provision?

So we all need to deploy our applications to real iPhones for testing purposes. I'm sure you much like me have found a group of sucke^H^H^H^H^H testers to help you out with this process. Whenever you want to send a build out to a new person this requires adding the new device id to your ad hoc provision. This part is fairly painless. The trouble starts when trying to get Xcode to use the new provision file.
Whats the best way to get Xcode to pickup and use the new provision first time? Ideally I would like to do this without changing the .xcodeproj file.
I've done this as follows, with good success:
Send out call for beta testers.
Respond to each with "in order to beta test, I need your UDID. You can send it to my by following these instructions..."
Folks incapable of sending UDID are told "thank you for your time, but beta is no longer taking applications."
If too many people can't figure it out, review your instructions.
After several days, make a batch provision file with all the people in beta.
I name the devices after the person's email address, i.e., mikeATexampleDOTcom.
I name the provision after the beta program, i.e., Neko-beta-1.
Build the app, provision & deliver (with non-technical installation instructions!)
For stragglers, you can either build another provision, or add them to the existing one, or tell them "beta's full."
Then...
After a few days, send email asking how its going, if they have any difficulties, etc.
~3 days before end of Beta, email saying "beta is coming to a close, please be sure to return your questionaires."
After close of beta, be sure to thank everyone, even those who did not reply.
How to automatically build an IPA file from XCode: http://www.idotcom.us/2009/05/how-to-build-a-ipa-file-from-xcode/
Step-by-step explanation of how to build an IPA file to send out via ad-hoc. You do have to change your XCode project but this way you create a separate target so it doesn't affect your main project.
What I do now is create a new provisioning profile if the devices change. Even if you modify an existing one, it is essentially a new profile with a different ID, but a new name. Then testers' iPhone fill up with provisioning profiles with the same name :)
Yes, it means changing your Xcode project file each time, but in my experience it's more reliable.
If you do keep the same name, beware of Xcode's cache of provisioning profiles, which can create a mess with builds. Your best bet is to remove of all the provisioning profiles from the Organizer window, as well as deleting the files in ~/Library/MobileDevice/Provisioning Profiles. Then restart Xcode and reimport the provision profile.
I haven't been able to do this without changing the .xcodeproj file, but that's probably because I've had terrible luck getting things to work without going through the whole "build clean, deselect the provisioning profile, reselect the provisioning profile" process.