iOS : Is there any way to test .ipa file in multiple device without jailbreak? - ios

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.

Related

Do I need an iPhone for TestFlight? [duplicate]

I have enrolled to Apple Developer Program to release my first app. My app's bundle ID is the same at developer.apple.com, at appstoreconnect.apple.com and in my XCode project. However, XCode still gives the error in "Signing & Capabilities" tab:
Failed to create provisioning profile.
There are no devices registered
in your account on the developer website. Plug in and select a device
to have Xcode register it.
And another error:
No profiles for ‘com.xxx.yyy’ were found
Xcode couldn't find any iOS
App Development provisioning profiles matching ‘com.xxx.yyy’.
First error message made me think that a physical connection to an iPhone is required to create a provisioning profile.
I have never connected a physical device to my Mac before. I made my tests by iOS simulator. I was planning to do my physical device testing via Testflight.
Do I have to physically (via a USB cable) connect an iPhone to my Mac in order to create a provisioning profile? If not, what might be wrong?
Is it required to have provisioning profile in XCode to be able to use Testflight or publish an app to App Store?
Do I have to physically (via a USB cable) connect an iPhone to my Mac in order to create a provisioning profile?
Yes, if you want to use automatic signing. An automatic provisioning profile unites a computer and a device and an app; it says that this computer is allowed to build this app onto this device. Until Xcode sees the device, it can’t create the profile.
The alternative is to switch to manual signing. It’s more work but now you can generate the profiles yourself.
You do NOT need a physical iOS device (iPhone or similar) to upload an app to App Store! Whether for real or TestFlight.
I realize this qn is old now, but I'm writing this for people like me, who stumble in here fighting the same problem... 😏
What you need to upload apps on App Store:
A MacOS machine (not too old)
A paid Apple Developer Account
An app signing certificate from the above account
A provisioning profile, with or without a physical device
When trying to create a new provisioning profile in your Apple Developer Account, the first option is:
iOS App Development
Create a provisioning profile to install development apps on test devices.
See:
If you chose this option, you need a physical device! In fact, the way I understand it, you are supposed to register the UDIDs of ALL the phones and tablets that you want to test your app on...
If, like me, you don't have an iOS device, you can instead chose the last option in the list:
Developer ID
Create a Developer ID provisioning profile to use Apple services with your Developer ID signed applications.
See:
This one only requires an Apple Developer ID!
At the end of your create-provisioning-profile process, you have to download your profile and open it in Finder to install it (in XCode or whatever you're using). In your project, you have to switch from "automatic signing" to "manual signing". In XCode, this is done here:
If, like me, you had already downloaded your app signing certificate and installed it in your KeyChain app, you may run into this error when trying to apply your provisioning profile:
"Provisioning profile 'your profile name' doesn't include signing certificate 'your certificate name'".
The way I solved this error was:
In KeyChain:
Exporting my Apple Developer certificate to a .p12 file.
Deleting my Apple Developer certificates.
Re-importing the exported certificate file to keychain.
In XCode:
Close and re-start XCode
In the "Signing & Capabilities" tab in the project, de-select the newly downloaded profile and then select it again.
Now, it works! 🙂 From there, you should be able to follow any tutorial for uploading an app to App Store.

Install iPhone application in my device

I was recently developing an iPhone application using Xcode. Now I want to install this app on my iPhone in order to test it.How can I do this? could you tell me please a step by step answer because I am new to this.
I have already created an account on the
iPhone Dev Center
now what is the next step?
As per Apple guidelines:
To test your app on a variety of devices and iOS versions, create a special distribution provisioning profile, called an ad hoc provisioning profile, and send it, along with the app, to testers. An ad hoc provisioning profile doesn’t require that testers be enrolled in an Apple Developer Program, be added to your team, create signing certificates, or use Xcode to run your app. Instead, app testers simply install the app and the ad hoc provisioning profile on their device to launch the app. You can then collect and analyse crash reports or logs from these testers to resolve problems before you ship your app.
Can I do what is mentioned here? and if yes how ?
go to memeber login area and login with your credential..
go to certificate , Identifiers & Profile tab
go to keychain access and create a .csr file and save it, it'll
required for creating certificates
create a certificate from certificate tab
create App Ids from identifier tab
Register your device UDID from Devices tab
Create distribution profile from Provisioning Profile tab and download & save it.
Install the Provisioning profile to your device and build your project using that profile.
Archive your project and create .ipa file
Final step: Install that .ipa file to your device.
Hope it'll help you. Happy Coding.....
With the free account you can not test/run apps on a device.

Exporting Ad Hoc profile?

I'm developing an app with a friend. I have created an ad hoc profile from my dev account. What do I need to supply to him so he can build the app on his machine as well? Do I need to supply him the .cer or the .p12 and in the case of the latter do I need to give him the password for my p12 (really dont want to do this)
If your friend has Developer account then u must prefer Fonix suggestion..
If your friend hasn't Developer account then u have to collect the device id of your friend. Then add a device in your developer account with your friend's device id. After that, create a adhoc profile and archive your project. From the organizer in Xcode 4.6.1 you could distribute your app by binding the adhoc profile as ipa format. You just send the adhoc profile and the ipa file of your project to your friend. Tell your friend to connect the device and drag both of the file on iTunes logo, then iTunes will show your project in app tab..... after that just press install then your friend could experience your project...
You dont need an ad hoc profile for that, that is purely for giving someone the app without having to upload it to the app store. he will just need to have his developer account added to your team, then he will need to upload his certificate to the team, and then add his certificate and his device to the development provisioning profile for the app
so in summary:
add your friend to your developer team
click on certificates and create a new developer certificate for your friend
(optional, probably already done this) create your app id (can be a wild card one for development, but easier if you just do this properly from the begining)
(optional, can just use the simulator) add you and your friends devices udids
create or edit your current development provisioning profile to include you and your friends certificates and devices, download this and double click to add to xcode automatically
and that should sort you out

Adding provisioning profile to new device on existing project

I'm confused as to how to add a provisioning profile to a new device. So I'm using Xcode 4.3.2, and TestFlight. I was given a pre-existing project and a team license via the company I'm helping out. The provisioning profile on developer.apple.com had certain devices already set up. So I added all these devices as testers to TestFlight, sent out an archived build, no problems, worked fine.
Now, one of the testers wants to try out testing on an iPad. So, I sent them an invite via TestFlight, and their device automatically registered on TestFlight. I see their UDID, and device, etc. However, their device is listed under "Teammates Devices Not On This Profile". So, I followed the prompts, exported the missing UDID to a file, and uploaded the file to the Provisioning Portal. I see the iPad now under "Devices" in the Provisioning Portal, however it is listed with 0 profiles associated. How to I associate the provisioning portal of this app with the iPad? Is there some simple step I'm missing? Keep in mind this iPad is in a foreign location, so I have no control over it. I need to tell them what they need to do (or automate it myself). Please help!
You need to add the device to the provisioning profile. Then, build the project again using the updated provisioning profile. And upload that build to test flight.
Or, I believe TestFlight has a new feature that allows you to simply update the build with the new profile without having to create a new build.

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