Apple might as well have just put an item in the log that says you failed, so try again. How can a company like Apple that prides itself on design and ease of use in it's consumer products, make something so hard and difficult? Could it be that by making this so complicated that they have protected the average person from having the patience to figure this out by obfuscation? I have to give them the benefit of the doubt and assume that the whole process was not designed for ease of use but was added as an after thought when the iPhone just took off and sold a gazillion units.iPhone installd[62]: entitlement 'keychain-access-groups' has value not permitted by provisioning profile '...' iPhone installd[62]: 0x201000 verify_signer_identity: MISValidateSignatureAndCopyInfo failed for /var/tmp/install_staging.CAh7po/foo_extracted/Payload/...: 0xe8008016 iPhone installd[62]: 0x201000 do_preflight_verification: Could not verify executable at /var/tmp/install_staging.CAh7po/foo_extracted/Payload/... iPhone itunesstored[103]: 0x1f6f000 MobileInstallationInstallForLaunchServices: failed with -1 iPhone itunesstored[103]: ERROR: MobileInstallationInstallForLaunchServices returned nil
The other problem I have is that when you sign up for an Apple developer account for $100 per year, you only get 100 physical devices where you can deploy your prototypes. If you test an app with 10 people and then never interact with those 10 people again during the year, you just lost 10 of your 100 devices. Now you see why people don't do user testing with real apps outside the Apple Store. If you have the physical devices connected to your Mac then those do not count against this device limit. How is this helping UX designers do user testing?
Please quit reading now if you are tired as the following may wear you out by just reading it...
Let me summarize the steps to deploy a TestFlight build so you can user test a prototype:
1) create a TestFlight account on the web (http://testflightapp.com)
2) create a Team within TestFlight
3) invite people to join the TestFlight Team as testers by sending them an email that they have to read on their iPhone
4) wait for the people to respond and then go back into TestFlight and export all of the contact info from within TestFlight Team screen
NOTE: congratulations as that is the easy part - all you have now are the unique iPhone identifiers for each person, so now the real fun begins
5) you have to have an Apple developer account and the Apple development environment called Xcode loaded on your Mac
6) log into the Apple developer account (http://developer.apple.com)
7) select "Certificates, Identifiers & Profiles"
NOTE: this is a 3 step process as you need a certificate, valid devices and a provisioning profile (it will be 4 steps if you want to create a unique application ID but I am not going there as that is optional and only needed for deployed Apple Store apps)
8) select "Development" under "Certificates" section
9) "iOS App Development" should be selected by default and grayed out, which is already confusing
10) select "App Store and Ad Hoc" since you cannot continue without select a "Production" radio button even though we are not generating a production build, confusion is starting to really set in now
11) the next screen is a set of instructions that you must follow using the Keychain app on your Mac, I forgot to mention the obvious but you cannot deploy an Apple app without a Mac, but you are free to use iTunes to connect your iPhone to your Windows computer!
12) after following those directions, you then load the generated CSR file into the Apple developer web site
NOTE: only two more sections to go, but you are getting the idea that only the brave in heart can actually get all of these correct the first time and not give up as extreme patience is needed
13) select "Devices"
14) select "+" to add new devices
15) select "Register Multiple Devices"
16) select "Choose File..." button and select use the exported device list from TestFlight
NOTE: finally something was not so bad, but then we start the really confusing part
17) select "Provisioning Profiles"
18) select "Development" under "Provisioning Profiles" section
19) select "+" to add a new profile
20) select "iOS App Development" radio button
21) select the "App ID", which should be your default Apple account ID or if you really go crazy then it would be the new application ID you created just for this prototype
22) select the certificate that you already created as it should appear in the list
23) select all of the devices you already added - if you need to add another one you get the honor of skipping the first 12 steps and going thru the rest all over again
24) name the profile
25) select "Generate" which will save the "mobileprovision" file in your Downloads folder
26) double click on the file to load that into Xcode
NOTE: now if you did everything by the book and nothing bad happened then you are almost done - now the following is the MOST important step and the easiest to get wrong
27) select the Xcode project file and make sure the build settings have "Code Signing Identity" set to the same value as the Certificate added to your Keychain - I open the Keychain app and select "Certificates" and scan for "iPhone Developer" and look for the Hex value at the end of the name - this is the same Hex value that must be selected for everything including Debug and Release
28) clean the project and rebuild it
29) easiest thing to do now is to install the TestFlight app locally on your Mac and start it up so it is visible in the system menu as the archive build in Xcode will send a notification that can be send to the local TestFlight app running on your Mac
30) select "iOS Device" as the target and then select "Archive" under the "Product" menu
31) when archive notice appears, end it to the TestFlight app
32) following the steps to add a comment, select all of the devices and send an email notice (the first time you do this, it would best to not send out an email since chances of success are slim to none)
NOTE: each device in the distribution list will get an email and iPhone notification that the build is ready
The good news is that on success you feel like celebrating as this was a huge accomplishment.
The bad news is that if you have to do this a lot then you are motivated to find a way to automate this somehow.
No comments:
Post a Comment