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.
Related
Is it possible to have multiple builds of the same application available on test flight, so that different user can download only builds for which they have been invited?
Also, right now, only build is what should be changed. If this is not possible, is there some way to accomplish this with a different setup ? (some setting in iTunesConnect or to setup an app differently)?
No you can't do it, but you have another way,
"Best way to distribute ipa to client is to upload ipa & provisioning profile to www.diawi.com and generate link. You have to send this link to client and client can install ipa in his device by opening generated link in his device's safari and then by clicking install application. Note that provisioning profile must include client's device UDID."
answer
I am new to iOS app development. I have a standard Apple iOS developer license. When I build my app it creates an ipa file. If I send this file to someone, will they be able to install it? Or does that require an enterprise license?
You can share an ipa archive with testers/friends using Ad Hoc Distribution. You do not need an enterprise license to do it, team or individual is enough. You will need to register a device's ID in the Member Center and to generate an Ad Hoc provisioning profile with this ID:
Using this method, testers don’t need to be team members or iTunes
Connect users to run the app, but their devices need to be registered
in Member Center. You can register up to 100 devices per year that
your team can use for development and testing. Therefore, choose this
method if you can use a portion of these devices for testing and can
collect device IDs from testers. Also choose this method if you’re not
ready to create an app record in iTunes Connect. You don’t need to
validate or upload your app to iTunes Connect to distribute it using
an ad hoc provisioning profile.
As you have standard development licence, it's enough for distribution under 100 devices, and after one year, you can also remove previously registered devices from your member centre.
But as the answer above described, it should be ad hoc distribution only you can use any except Apple Store distribution, so the easiest way to do that is to just create a development provision with as many selected device as you want to distribute. After that, you just need to install a particular provision in your Mac by just clicking over it and then select the provision in your project.
Now compile your project.
After successful compilation, go to product folder, select the app, and reveal it in folder.
Copy the app file from this folder.
Just create one folder on your desktop and name it Payload.
Paste the app file you just copied inside the folder.
Place one image again on your desktop and name that iTunesArtwork but without extension.
Now select the payload folder and iTunesArtwork file together and compress it.
After compressing it, create archive.zip and rename it to may.ipa.
Now it will ask if you are sure you want to rename it. Press yes.
Now you have ipa read within few steps and you can use this payload and iTunesArtwork for making another .ipa or for any other project. Just leave this both folder and the file on your desktop. It will always help you.
Now go to http://diawi.com and upload your ipa file here which you just renamed, and then when it's done with uploading, press the send button. It will give you a URL. Share it with your testers or friends. They can directly download it in their device. No need to send ipa, and in this process, no one can use re-engineering in your .ipa. It's safe and secure.
I created .ipa file using ad-hoc as the app is in testing phase. I want to send this .ipa file to my friend in other country to test the app, but due to company policies, he cannot jailbreak the device. How to make .ipa file which can be executed in any iOS device?
Generated .ipa file from Xcode 4.6
Get his device's UDID and add it to your list of devices in the profisioning portal. Then include the device in the certificate, download the updated certificate and 1) import it in xcode and re-build and 2) add it to the mail with the ipa file. He is supposed to copy the certificate into the apps folder in itunes and then cops the ipa there and sync the device.
If you happen to have more betatesters on distributed locations then you should look for services like testflightapp. https://testflightapp.com/ which provides convenient aid for you and the testers.
Why don't you just register your friend's device to the Member Center and add it to your Ad-Hoc distribution certificate? Then re-distribute it.
Here is all the information you need : https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html
Add all of the devices to your developer account and adhoc profile and then distribute. Or sign up for an enterprise account and then you can distribute the app internally to your company.
Consider to use TestFlight: http://testflightapp.com/dashboard/
You can upload your ipa and invite your friends to be testers.
it is possible and very easy.
So, you say you already have an ad-hoc provisioning profile. But actually only with one (your own) device ID. So here is, how to add more device IDs - no jailbreak necessary!
Ask your friend to connect his device to iTunes, and eMail his Device UID (DUID) to you (40 characters string)
Go to Apples Developer Member Center (iOS) web site, login with your account and head over to "Certificates, Identifiers & Profiles".
Click on "Devices" and add your friends device (name and UDID).
Now click on "Provisioning Profiles" and select the existing ad-hoc distribution provisioning profile for your app and click "Edit" to add the new device of your friend
Now make Xcode refresh its internal provisioning profile database via menu "Window / Organizer" then click "Devices" tab and "Provisioning Profiles" on the top left. Then click menu "Editor / Refresh from Developer Portal"
Rebuild your app with your just updated provisioning profile (this should update the code signing of your app.
Via "Product Archive" generate your *.IPA
You should now EMail the *.ipa to your tester friend.
If you are fast with the above steps 2 to 8, your frind still has connected his device to iTunes (see step 1 above).
;-)
He now simply drag'n'drops the *.ipa file from your mail to iTunes and iTunes syncs the App to his device. The app should work. (Eventually the device installs the profile - but nothing can go wrong here).
DONE.
If you have multiple testers and mutiple builds, then have a look at http://www.testflightapp.com - this free of charge website makes distrubution of iOS apps for ad hoc testing even more easy. But it only saves time if you have multiple testers and multiple to be tested apps (or versions of one app).
Have fun!
If you are developing on mac, Consider downloading multiple iOS and config your iphone simulator for those.
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
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.