How can I get an iPhone app to a client for review prior to public release? - iphone

I need to show an app I have developed to a client for review prior to its submission to the app store.
The client has an iPhone but not a mac on which to run xCode.
I have a personal (not company) iPhone developer account.
The client is too far away to visit in person.
What are my options?

If the client has iTunes, you can provision a build of your app specific to the client's iPhone ID (visible in iTunes). They just need to drag it into iTunes and then install it on their phone.
Plenty of docs about this in the Apple iPhone Developer site. Good luck!

Option #1:
Login to the iPhone developer portal website.
Add their iPhone UDID to the list of devices.
Generate a provisioning profile that includes your own test phone and theirs. Download the file (ends with .mobileprovision).
Double-click it to install it on your development machine.
Quit and restart XCode, then set your code signing identity to the name of this profile.
Build the binary.
In the left side of XCode "Groups & Files" bar look for Products (may need to expand the folder).
Select {yourapp}.app. Right click and choose 'Reveal in Finder.'
Now take that .app file and the .mobileprovision file you downloaded, zip them both up and send it to the client.
They will need to unzip the archive, then drag-drop the .app and .mobileprovision onto their iTunes and sync the phone. Your app should show up and run.
The portal site has more detailed instructions, but this is basically it in a nutshell.
Option #2:
Sign up with a screen sharing service like WebEx or glance.net (both work on Mac and Windows machines). Run the app in the simulator as they watch the screencast on their machine. If it's in the early stages of development, this is probably much more useful since they can give live feedback. In later stages, sending them the app is probably more useful. The nice thing about screen sharing is that they can take over the mouse and click around and explore while you're there to explain things.
Option #3:
Get a screen-recording app like SnapzPro or ScreenFlow and run the app in the simulator while recording a voice-over of its features. Send them a link to the movie. This is pretty useful if you're walking them through all the features. It's also handy if more than one person at a time needs to review the material. The advantage over #2 is that they can watch it over and over on their own time and take notes.
Depending on the stage of development, #3 is probably best in early stages, #2 in the middle, and #3 in the final steps.

I recommend having the client use the iphone configuration utility to install/uninstall early builds of the app. I am using this with my team and it lets you get direct access to the phone's console and error logs which is super handy when you're in the early stages of development. It also lets you manage the install/uninstall of the app and see the explicit version that you are installing in a much easier to manage way than itunes does.

Option #4:
Try https://testflightapp.com/ , this is easy for distribution of your app. Even Twitter Mirror is Using this to test their beta release.

Related

Submitting Codenameone Build To AppStore

I have completed alpha testing my app using the CN1 'Send IOS Debug Build' and QR-coding it onto my iphone. So i'm ready to load it onto the AppStore, but i don't have a Mac (but i do have the ITunes developer account and the apps certificates generated).
Its just confirmation on the next steps.
The good people at Coursera produced a number of excellent tutorials, of which this one describes the steps i need to perform:
https://www.coursera.org/learn/codapps/lecture/F1B6x/video-how-to-distribute-your-app-on-apples-app-store-you-need-a-mac. I have failed in finding a CN1 badged tutorial on this (closest is the certificates generation).
But time and technology move on, so i wanted to check this was still accurate - do i still need to:
Install Application Loader from Itunes Connect onto a Mac? Is there a non-Mac approach? If not then i will use the http://www.macinthecloud service.
Take the. ipa and artwork file from the CN1 build server and apply that to the mac, and then follow the rest of the steps in that tutorial?
Please don't shoot me down for such a basic question. Once i get through this first app i'll be cooking. Thanks in advance.
Yes, a Mac is needed, but MacInCloud works fine. As you said, you use application loader to upload your .ipa file. That's all you need the Mac for, so uploading artwork and everything can be done through iTunes Connect from your PC. The icon that will show up on the phone screen is bundled into the app, and I think the artwork with the build may not be the right size, so you might have to generate an icon for the store listing and of course the screenshots.

Test Phonegap Build app on a friend's iPhone

I have created a mobile app using Phonegap Build (not just Phonegap...but Build). I have a Windows PC and do not use eclipse or xcode. I just write the Javascript and let Build do all the complex stuff for me.
I can easily test my app on an Android device by scanning the QR code that is displayed on the Build page after my app compiles....but how can I test on an iPhone or iPad? I can convince a family member to loan me one for a day, but I don't have a Mac (I could probably visit another friend to use one, briefly).
It would not be appropriate at this point to spend $99 on a developer certificate, even though this app may be submitted to the store eventually. If $99 is the only option, I would be grateful to anyone who makes this clear!
Or perhaps I just need to learn about TestFlight or Lesspainful? The descriptions are confusing me at present, but I will try harder if I hear some experts tell me that this is the right way to go!
It would be good to test on a real Apple device, as I haven't had much luck getting an emulator going...but perhaps the only answer to my dilemma is to tell me to stick with emulators. (In which case: is there a nice step-by-step tutorial for a complete beginner to install an iPhone emulator in Windows?).
Thank you.
If you want to test on a device, your app needs to be signed using your certificate. You'll also need a development provision profile that includes the device ID's of any devices you want to test on. In order to get those things, you need to join Apple's iOS developer program. This is true even if you're using the PhoneGap Build service; in order to build for a device, you need to upload your certificate and provision profile to PhoneGap Build. Look at PhoneGap Build's Building for iOS page for complete information. All this means that you'll need to pay the $99 fee to join the iOS Developer Program.
An alternative is to jailbreak your device (or, in this case, your friend's device). You can find instructions for that on the web if you're so inclined. However, I don't think you'll be able to build through PhoneGap Build in that case -- you'll need to build your app yourself with Xcode or possibly some other set of tools.
Just as an update for anyone else that ends up here. You can now use Adobe PhoneGap Developer App which allows you to run the Apps on devices without ID's, licenses etc. Here is a guide to getting started.
You would need to join the Apple Developer Program to be able to sign the build and create the .IPA to use TestFlight or other methods to get the build onto the device.
There are options for you to test on a device without that though - see App.io for an in-browser emulator.
Whether you go with that or TestFlight I've blogged about Getting mobile app builds to your customers which includes the pros and cons of the options and the steps you'd need to go through.
install iTune on your windows PC. Copy IPA file to application directory of iTune. When connecting device (iPhone,iPad or iPod), sync apps. Then you can test on real device.

How can I deliver iOS app to tester that hasn't got a mac

I'm developing an iOS application (I have macbook) and I have an apple developer's account.
How can I deliver iPhone app to tester that hasn't got a mac?
Tester's phone is not jailbroken (I can't build deb)
I recommend using the Test Flight service. It allows you to upload builds of your application and distribute then to testers via their website.
They have a great help section to get you started.
EDIT: Oh, and it's free for the basic service.
I hope that helps. Good luck.
They can run itunes on a windows machine too. But if they don't have a computer at all there is another option. You can distribute it via a link.
Its really easy. Prepare to do an adhoc distribution as usual and then click the "Enterprise Distribution" tick box.
Then add the URL to where the final .ipa will be. I usualyl fill in the app name on the second line as well but never fill the rest in.
e.g
http://www.yourdomain.com/YourApp/YourApp.ipa
Then upload the created .plist and .ipa to the relevant URL so that the 2 files are available as:
http://www.yourdomain.com/YourApp/YourApp.ipa
http://www.yourdomain.com/YourApp/YourApp.plist
Now finally create a simple HTML page and upload it to your site.
<http>
<body>
<c><font size="20">Click here to install YourApp</font></c>
</body>
</http>
Now send them a link to the above HTML page and they are good to install.
Be warned: You must have the tester's UDID in the adhoc distribution profile certificate or this will not work.
Follow these steps:
Include the users' udids into your adhoc distribution profile
certificate (same step as in Goz's answer).
In Xcode, use the Archive function and sign the code with the adhoc profile
certificate.
In Organizer, create the .ipa file for distribution.
Send the .ipa file to your users (i.e. via email).
Ask them to drag and drop the .ipa file into Applications section of iTunes for Windows and synchronize their devices.
You must have Mac OS and Mac machine to develop them. You will need XCode installed on Mac OSX to code, run and test your application.
If you do not want to buy Mac you can install Mac OSX on PC referring this link thats called Hackintosh. This works fine on PC if you follow steps properly:
http://tonymacx86.blogspot.in/2011/07/xmove-multibeast-install-os-x-107-lion.html
If that's not a possible, you may consider inviting the person over physically or to do it virtually via ex. Teamviewer or any other remote desktop protocol.
The most convenient and time saving approach that I have used so far is Test Flight. The integration is seamlessly easy. You can share files with testers and it does not require you to have a system.
The main steps are
1)Download and integrate Testflight SDK after creating a valid account (Login required).
2) Integrate the SDK with iPhone application (Though it isn't mandatory if you only wish to distribute the application and not track its usage and reporting purpose).
3) Create you team and upload build on Portal.
4) Subsequently allow testers to have access to the permitted devices mentioned in provisioning profile.
You can manage Multiple teams and applications at a single place. Hope it helps.

Installing an Ad Hoc app for testing without synchronizing iTunes

I have an iPhone app that I'm distributing to testers. I followed these instructions:
https://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/YourFirstAppStoreSubmission/TestYourApponManyDevicesandiOSVersions/TestYourApponManyDevicesandiOSVersions.html
And they work except for one of my testers, who does not use iTunes to synchronize his apps. He has many apps already on his phone and doesn't want to synch to iTunes because it sounds like it will delete them. So...Is there any other way to get a testing app onto an iPhone besides synchronizing with iTunes?
Simply distribute it using OTA ("Over The Air" distribution).
When you Archive your application using Xcode (menu Product -> Archive, I hope that's what you do already to keep debugging symbols so that you can symbolicate crash logs when testers send some back to you!), once you click on "Distribute", select the "OTA Distribution" option and follow the steps.
Don't forget to check the "Distribute for Enterprise" checkbox in the appropriate step and fill the requested informations (Product Name, URL of the IPA when you will upload it on your server, etc).
Once your .ipa and the associated .plist is created, upload them both on a web server, and make a link to "itms-services://?action=download-manifest&url=<the_url_to_your_plist_file_here>".
When the users will open this link from their iPhone, it will prompt to install the application on their device directly, without the need to plug their device to any computer.
There are many tutorials on the net about this, simply google about iPhone OTA distribution.
I strongly recommend TestFlight. It's free and it's easy and they manage all that server side work.
Since your user is afraid of the iTunes Sync Process (for good reason), why not recommending him to use the iPhone Configuration Ultility.
That tool does not do a complete sync but only transmits the app you specified to.
It is free, easy to use and very reliable. Well, sometimes it has its hickups on Windoze systems but that seems to be a normal experience for users of that OS.

Auto-updated iOS application for enterprise distribution

Is it possible to make an iOS application for enterprise distribution that updates itself transparently? Saying 'updates' I mean completely updating its logic.
A possible usage of this approach is a self-service kiosk (iPad) that is maintained remotelly.
It's not possible to update application binaries directly, but I see some possibilities:
Application that have a single UIWebView and the logic is implemented in HTML5. But we can't use most of hardware specific features that can be used in native applications.
Some multi-platform framework (possibly HTML5-based) that allows to use native application features and that is compiled or interpreted dynamically.
Jailbreak?
What are really working approaches of these?
Consider getting a mobile device management service. Those are pricey.
OR:
First, enable over-the-air distribution. It will take $300/year enterprise agreement with Apple. Set up a website with the app's IPA archive and descriptive PLIST.
Then code a call-home HTTP request on app startup. You may pull/parse the same PLIST that describes the latest version; it has a bundle version in it. Compare that to the version of the currently running bundle.
When a new version is detected, the app shuts down, opens the browser on the download page. In a softer manner, just notifies the user that an upgrade is available.
I've never tried linking directly to the app's download package, but give it a try. In a perfect world, Safari would open up and ask "Do you want do download MyApp?" right away. In a not so perfect world, the user would have to click a link and then agree to download.
I think what you are looking for these days is the "Apple Deployment Program".
You volume purchase iPads which get sent to people, but that you can manage remotely - which also means management including remote updates of applications.
The only thing I'm not sure of is if you can launch an app remotely, so that you could update and re-launch an application.
Here's a guide to enrolling devices for remote management:
https://www.apple.com/business/docs/DEP_Guide.pdf
An old but good summary of the program:
http://www.speirs.org/blog/2014/2/27/understanding-apples-new-deployment-programs
Also watch the WWDC video on Managing Apple Devices for the Enterprise:
https://developer.apple.com/videos/wwdc/2015/?id=301