How do I take an IPA file and have it install remotely on an iOS device? - ios

The 'traditional' way to install an IPA file is via iTunes.
Its nice the way Test Flight and other tools allow doing this remotely, by downloading from an install link on the web or email.
I tried adding an IPA file to a remote server, and downloading, but Safari informed me "I don't know what to do with this file" (or words to that effect).
Assuming the UDID of the target device is in the provisioning profile, how can I have the file remotely installed on a device.

The search term you're looking for is "over the air" distribution. Try the guide here

Enterprise distribution Over The Air
http://help.apple.com/iosdeployment-apps/mac/1.1/?lang=en-us#app43ad871e

In a nutshell, these are the steps:
in Xcode, use the Product->Archive command to archive your project.
select the archive in the Organizer window and click the Distribute button
choose Ad Hoc/Enterprise deployment
when filling in the fields in the wizard, be sure to enter the URL where the application will be located correctly
once you've saved the signed app, put the app and the accompanying property list up on your server at the URL you indicated
create a web page or e-mail that includes a link to the property list
on a device, tap the link to install the app

Related

Run ipa on device without cable and not with TestFlight?

Is it possible to distribute IPA to device without TestFlight, and not via cable? I have a new MacBook Pro with usb-c and an iPhone. Hard to get company set up TestFlight. Any idea how to test on device?
Yes. Ad-Hoc OTA is the way to go.
On developer.apple.com:
navigate to your account & login
click Certificates, IDs & Profiles in the side menu on the left
on the left, find Devices & click +
register multiple devices by uploading a spreadsheet including the UDIDs and names of the devices
follow the steps to finalize the registration process
You might need to wait 24 hours; I found, it sometimes takes really long for the changes to take effect.
Inside Xcode:
prep: open Xcode settings, accounts, your account and then re-download all the profiles and certificates
archive the product
open the Organizer window and find the archive you've just created
click Distribute App
choose Ad-Hoc
make sure to have include manifest for OTA installation enabled
follow the steps
finally, click export and choose a location to save the files
Upload all the files (icons, .plist & .ipa) to your server. Note that the server needs to be https, this is mandatory. If your's isn't, upload it to Dropbox or some other cloud service. If you're using Dropbox, make sure to replace www.dropbox.com with dl.dropboxusercontent.com.
Manifest
open the manifest.plist file and insert all the new urls
again, for dropbox: replace www.dropbox.com with dl.dropboxusercontent.com
upload the manifest plist to a secure server.
Link:
itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/YourURLHere/manifest.plist
You can try Diawi for Development & In-house Apps Wireless Installations
It will require the target devices to be registered into the signed provisioning profile that will be distributed with
For me Fabric is an excellent tool. You can check it out here. I often distribute ad-hoc builds using this. It simply sends the app install link in an email and you can open the email from your iOS device and install the build right away.

OTA Installation: Install IPA on device for testing

I have generated a debug IPA using Codenameone build server, that I would like to test.
The file is hosted online example URL below:
https://url/directories_to_app/myapp.ipa
If I download the file above from my iOS device. I have no way of installing it (iOS only gives me options to share the IPA file). What are the additional steps that I need to do to be able to download and install the file on my iOS device?
one way to install ipa is upload ipa on below url then allowd adhoc devices can install this ipa from the url.
https://www.diawi.com/
You can drag drop ipa file in iTunes and install that on your device as well.
1. Drag-and-drop IPA file into 'Apps' tab of iTunes BEFORE you connect the device.
2. Connect your device.
3. Select your device on iTunes.
4. Select 'Apps' tab.
5. Click Install button in front of app.
I may have missed something in your post, but if you are using the Codename One build servers you can install your .ipa directly from there. On your iOS device, browse to https://www.codenameone.com/build-server.html, click on the "Successful Build" message and then click on 'Install On Device".
You can install your app using http://installipa.com/
Click on the Enter App Details button
Upload your .IPA by clicking the cloud icon beside "IPA URL"
Optionally add a name, icon and your email address.
Press "Send Installation Link"
You will see a QR code, that you can scan using your iPhone, or click the link in your email from your iPhone.
Use https://appforshare.io with no limitations
No build expiry
No size limited
No storage limit
Complete project management
I have found this tool very useful as compare to others, all others limiting me if build size exceeds 50mb or 100mb, or link expires very soon etc.

keep old app versions submitted to store and install them on dev iPhone

I would like to keep versions submitted to the store to install them on my developer phone at a later time, is that possible? If I take that .ipa, how can I install it on my phone? Do I have another format than .ipa?
How can I build an archive of all my app store versions to install them at a later time?
I tried the solution from Rhythmic Solution, doesn't work yet ("A valid provisioning profile for this executable was not found."). My steps:
from the archives in Xcode, export one entry as App Store build
open iReSign
enter path to exported .ipa in first field
enter path to downloaded developer provisioning profile in second field
use an entitlements.plist created like here
select developer certificate
resign button
drag it on to the "installed apps" section in Xcode/devices
now I get the error "A valid provisioning profile for this executable was not found."
I think you can upload all those versions on diawi.com and get the url and save them whenever you need that version just take the respective url and install in your phone.
On other note git is a very important tool to track the versions of you code.
A while back I came across some ancient Ad Hoc builds of mine and wanted to try them out, but the technique works with AppStore submission builds, as well as developer and enterprise.
The general method is to
1. unzip your .ipa file into an .app
2. replace the embedded.mobileprovision provisioning profile (which has probably expired or does not allow installation on your device)
3. the above step invalidates the app's signature, so you resign it
4. zip the app back into an .ipa file
5. install the app via over-the-air download, drag onto the Xcode Devices window or itunes syncing (if you like pain)
iResign can do steps 1-4 for you.
If you want to duplicate entitlements, you can start here - however that can be more complicated than simply copying them across, e.g. push notifications can change from production to development and vice versa.

IOS: install .ipa

I created an adhoc version of my app (.ipa) and I sent it to a my friend; now he hasn't his mac, can he install .ipa without macbook (with iTunes) on his iPad? or .ipa is possible to install only through iTunes with a mac?
You can install with the itunes for Windows.
If not use the "over the air" distribution. You'll provide an online link and he will install it directly in his phone. Search the web, there are many tutorials.
If you are interested in OTA installs, I would check out TestFlight, they are free and honestly fantastic.
Your friend can install the app using iTunes on Windows, but you will still need to make sure his UDID is added to the provisioning profile you built the app under. Otherwise it will fail on his end for code signing issues. TestFlight is good for making sure these are resolved before publishing. Otherwise you can put the .ipa file on dropbox for your friend to download.
An Easiest Way to Install .ipa file to iDevice listed below.
Make sure your device UDID is registered in Developer account.
Select Generic Device as Target and go for Archive to Generate .ipa file. (Hope you know the process of generating .ipa file for development)
Once your .ipa file is ready then connect your iPhone or iPad to MacBook and select Device and Simulator in X-Code Window option.
Enable "Connect Via Network" Option in the Popped Up Window.
Click on to the + Symbol button which is located at below Installed Application List Section.
enter image description here
Select .ipa file which was earlier generated and saved at some location of your MacBook.
enter image description here
It will take few seconds to get your application installed on your device and will also appear in "Installed Application List" with build number.
INFO: you can do this with connecting the iDevice to your system or if your iDevice in same Network (only if, you have enabled Connect Via Network to the device).

How do you beta test an iphone app?

How can you beta test an iPhone app? I can get it on my own device, and anyone that gives me a device, I can run it on theirs, but is there a way to do a limited release via the app store for beta testing?
Related: Also, see this question on getting your app onto phones without using the App Store.
Creating ad-hoc distribution profiles
The instructions that Apple provides are here, but here is how I created a general provisioning profile that will work with multiple apps, and added a beta tester.
My setup:
Xcode 3.2.1
iPhone SDK 3.1.3
Before you get started, make sure that..
You can run the app on your own iPhone through Xcode.
Step A: Add devices to the Provisioning Portal
Send an email to each beta tester with the following message:
To get my app on onto your iPhone I need some information about your phone. Guess what, there is an app for that!
Click on the below link and install and then run the app.
http://itunes.apple.com/app/ad-hoc-helper/id285691333?mt=8
This app will create an email. Please send it to me.
Collect all the UDIDs from your testers.
Go to the Provisioning Portal.
Go to the section Devices.
Click on the button Add Devices and add the devices previously collected.
Step B: Create a new provisioning profile
Start the Mac OS utility program Keychain Access.
In its main menu, select Keychain Access / Certificate Assistant / Request a Certificate From a Certificate Authority...
The dialog that pops up should aready have your email and name it it.
Select the radio button Saved to disk and Continue.
Save the file to disk.
Go back to the Provisioning Portal.
Go to the section Certificates.
Go to the tab Distribution.
Click the button Request Certificate.
Upload the file you created with Keychain Access: CertificateSigningRequest.certSigningRequest.
Click the button Aprove.
Refresh your browser until the status reads Issued.
Click the Download button and save the file distribution_identify.cer.
Doubleclick the file to add it to the Keychain.
Backup the certificate by selecting its private key and the File / Export Items....
Go back to the Provisioning Portal again.
Go to the section Provisioning.
Go to the tab Distribution.
Click the button New Profile.
Select the radio button Ad hoc.
Enter a profile name, I named mine Evertsson Common Ad Hoc.
Select the app id. I have a common app id to use for multiple apps: Evertsson Common.
Select the devices, in my case my own and my tester's.
Submit.
Refresh the browser until the status field reads Active.
Click the button Download and save the file to disk.
Doubleclick the file to add it to Xcode.
Step C: Build the app for distribution
Open your project in Xcode.
Open the Project Info pane: In Groups & Files select the topmost item and press Cmd+I.
Go to the tab Configuration.
Select the configuration Release.
Click the button Duplicate and name it Distribution.
Close the Project Info pane.
Open the Target Info pane: In Groups & Files expand Targets, select your target and press Cmd+I.
Go to the tab Build.
Select the Configuration named Distribution.
Find the section Code Signing.
Set the value of Code Signing Identity / Any iPhone OS Device to iPhone Distribution.
Close the Target Info pane.
In the main window select the Active Configuration to Distribution.
Create a new file from the file template Code Signing / Entitlements.
Name it Entitlements.plist.
In this file, uncheck the checkbox get-task-allow.
Bring up the Target Info pane, and find the section Code Signing again.
After Code Signing Entitlements enter the file name Entitlements.plist.
Save, clean, and build the project.
In Groups & Files find the folder MyApp / Products and expand it.
Right click the app and select Reveal in Finder.
Zip the .app file and the .mobileprovision file and send the archive to your tester.
Here is my app. To install it onto your phone:
Unzip the archive file.
Open iTunes.
Drag both files into iTunes and drop them on the Library group.
Sync your phone to install the app.
Done! Phew. This worked for me. So far I've only added one tester.
In year 2011, there's a new service out called "Test Flight", and it addresses this issue directly.
Apple has since bought TestFlight in 2014 and has integrated it into iTunes Connect and App Store Connect.
Note that there is a distinction between traditional "beta testing" which is done by professional QA engineers, and "public beta testing" which is releasing your product to the public before it's ready : )
You can do "beta testing" -- loading to specific iPhones/iPods your testers will be using. You can't do "public beta testing" -- pre-releasing to the public.
In 2014 along with iOS 8 and XCode 6 apple introduced Beta Testing of iOS App using iTunes Connect.
You can upload your build to iTunes connect and invite testers using their mail id's. You can invite up to 2000 external testers using just their email address. And they can install the beta app through TestFlight
Diawi Alternatives
Since diawi.com have added some limitations for free accounds.
Next best available and easy to use alternative is
Microsoft
https://appcenter.ms
Google
https://firebase.google.com/docs/app-distribution/ios/distribute-console
Others
https://hockeyapp.net/
http://buildtry.com
Happy build sharing!
There's a relatively new service called HockeyApp, which seems to rival TestFlight, however they claim to give you access to unlimited users, but it does cost some $$ unlike TestFlight which has now been integrated directly into iTunes Connect.
Using testflight :
1) create the ipa file by development certificate
2) upload the ipa file on testflight
3) Now, to identify the device to be tested on , add the device id on apple account and refresh your development certificate. Download the updated certificate and upload it on testflight website. Check the device id you are getting.
4) Now email the ipa file to the testers.
5) While downloading the ipa file, if the testers are not getting any warnings, this means the device token + provisioning profile has been verified. So, the testers can now download the ipa file on device and do the testing job...
With iOS 8, Xcode 6, iTunes Connect and TestFlight you don't need UDIDs and Ad Hocs anymore. You will just need an Apple ID from your beta tester. Right now you can only beta test your app with 25 internal testers, but soon 1000 external testers will be available too. This blog post shows you how to setup a beta test with internal testers.
(As the official guide is still missing in this thread..)
TestFlight, acquired by Apple and now (iOS8+) available for beta testing makes it easy to hand your app to beta testers without the need to collect device UUIDs beforehand (you only need email addresses of your testers). An extensive guide explaining all necessary steps may be found in the iTunes Connect Developer Guide.

Resources