Can we install an unpublished iOS app on a remote device.? - ios

I am developing an iOS app which needs to be tested in a device which is present in another country with the client. If needed I can get the UDID and other details of the device. Can I install my under-development app on that device without publishing my App.? If yes, please explain the procedure.
Thank you all in advance.

Yes, you can. To do this you will need the UDID of all the devices where the App will be installed, and then you need to generate an Ad Hoc provisiong profile for those devices.
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html
To send the app to your client, go to XCode > Product (Menu) > Archive.
Then open Organizer > Archives (Tab) > Distribute. Follow on-screen instructions.
This will generate an .ipa file (executable) which you can then send to your testers (through email, or whatever other mean). He will have to install this .ipa by dragging and dropping it onto iTunes.
For further discussions look at this question.

Yes, you can.
1)Register client's device into device list in your developer account on apples site
2)Generate Ad-Hoc provision profile and send to your client with *.ipa file
3)Test it
Also take a look at 3-rd party services like TestFlight - http://testflightapp.com .Very popular and convenient way to work with beta-testers all around the world.

Answer is yes. You need to get UDID and add it to your developer portal as testing device. Download the provisioning profile and rebuild the app with revised provisioning profile. This app can be send to client for testing.

If you can sign with an Distribution profile for enterprises than you can upload that file on a link and user can Install the iPA file just by clicking on that link..
for more info check on these links..
How to distribute ios application wirelessly without managing UDIDs and recompilation
iPhone Application Enterprise Distribution Process

This an incredibly bad idea. What you are setting up is a back door into any iOS device to plant (potentially) malicious software. While your intentions may be good the long term effects are not.
Publishing your app would require it to go through code review, which is entail to ensure the enteritis of the app.

Related

How to generate IPA file without apple developer program and without a connected device in Xcode 7.2?

My employer doesn't have an iPhone for testing, they are also not enrolled into Apple's developer program, but they recruited me as an iOS developer.
I was told to create an app and I did it with the help of simulator.
Now, they want me to generate an IPA file of that application for their client who is in another country to test, in his iPhone. Is that even possible?
You will certainly need a developer account if you want to run your app on a physical device (unless that device is jailbroken, which I wouldn't recommend). If your employer hired you as an iOS developer, you need to inform them that a requirement to doing iOS development is a developer account.
If you are going to be writing iOS apps to deploy on client device (which you won't have physical access to), you have a couple of options.
You could have your employer pay for the enterprise developer account ($299/year). This allows you to have an In House Distribution profile, which lets you build an IPA that can run on any iOS device without the need to register the UDID for each device in the provisioning profile.
You could use Apple's TestFlight to deploy the app to your clients' devices. This still requires a paid developer account as you are basically creating an app store build and distributing to others as "beta testers". The app goes through a more lax review process, but it still must have been signed with a distribution certificate, which you only can get with a paid account.
Bottom line, if your company is asking you to develop apps professionally, you need to get them to understand that the $99/year fee is part of the process. IF they can't justify that, they shouldn't be hiring out iOS development jobs.
Without Apple developer's account it is not possible. You would not be able to archive your code either. Have a look at these documents :
Apple's documentation : Exporting Your App for Testing (iOS, tvOS, watchOS)
Stackoverflow : How to export an ipa in Xcode 7
you have to enrolled into Apple's developer program, and add all UDID into you app device ID than generate a provisional profile. install it in xcode than create an archive, zip it and upload to diawi.com. Diawi( https://www.diawi.com/ ) is best solution, It will generate a link which you can give to client and they can install it on their device directly.
I have faced same problem at start of my job :)
- but it is not possible to generate ipa without apple developer account.
- and even if you connect device to deploy then device iOS version and XCode iOS version must be same.
you have to enrolled into Apple's developer program and this is not enough. For over-the-air installation you have to use apple's testflight or hockeyapp like third party apps.

How to create an IOS app that could install without the Apple Store?

I find out some app on internet that it installed my phone not through Apple Store. When i clicked "Download App" on the website, it will install automatically on the phone. I wonder why this way is available with Apple Security.
Please, give me a reason. ^_^
Read this article:
http://mobiledan.net/2012/03/02/5-options-for-distributing-ios-apps-to-a-limited-audience-legally/
You can do what you want with iOS Developer Enterprise Program -- In-house app distributing.
Compile your Application with Enterprise Account -> Upload on third party site like http://www.diawi.com & share generated link with others
If you don't know about build types then let me tell you there are 3 types of iOS ipa files that can run on iPhone
1-Developer Mode
2-AdHoc Distribution
3-App Store Submission
Developer Mode: it will only run on debugging device
AdHoc : two types of this build
i) Simple account:
for this build you have to add your mobile Udid into the provisioning profile it will only run on that device whose udid is included in the profile.
ii) Premium account:
for this build you don't have to do any thing it will run on every device without adding its udid to provisioning profile.
App Store Submission : for submitting to apple store you have to make this type of build.
//udid means your mobile device id.
Purchase Enterprise account(299 dollars) or simply create ipa and share on TestFlight but you will still need developer account (99 dollars). In developer account you can register only 100 devices so you cant send ipa to many users. In your case Enterprise account is better. It is your choice.
You are correct,
Some apps don't need to go through APP-Store
There is two types of Developer account by Apple,
If you go with "Enterprise Program" (need to pay more), and you have to create Ad-HOC app and upload on 3rd party server, and you can download it from there.

Can I test an app on an iOS device belonging to someone who lives in another part of the world?

I have finished working on an iOS app that I would like to give some friends of mine to test on their devices before submitting it to the app store. However, they live in another parts of the world, and am unable to get a hold of their respective devices. Is there a way for me to use their UDID and generate an .ipa file to send them to test on their device via email, without them having to physically provide me with their actual device?
I have heard of TestFlight as a possible solution, but can it be used for a device that is located in another part of the world, and I simply have the UDID to work with? Please bear in mind that the people whom I wish to have test my app are NOT iOS developers, and are therefore NOT registered with Apple's Developer program. Can it still be done?
For that you have to create new device in your iOS Provisioning Portal with your friends UDID. And then in your Provisioning Portal > Provisioning > Distribution > Your provisioning profile and edit your currant distribution profile and add newly created divice in that distribution profile. than create ad hoc distribution IPA with this new provisioning profile. And, taadaa, this IPA will run on your friends iPhone.
Here is the screenshot for distribution certificate.
Use this video to create distribution profile and IPA for ad-hoc.
It is same as we are giving our app to client for review.
Yes, TestFlight is exactly the type of service you would use to do this easily with non-developer testers. They will be able to click a link in the e-mail and it will install your app on their phone. It doesn't matter where they are physically located as long as you add their UDIDs to your TestFlight and Apple Developer account.
Testflight allows you to do so. ALl you need to do is to register their UDID in your account and send them a link to download the app. Then you send your applications through the account and they will receive an email to download the app.
Hope this helps..

IOS Enterprise Distribution Through OTA

We have build an enterprise iPad App and now we want to give it to our employees. Initially when testing, we used ad-hoc distribution collecting all the test device's UDID and then creating the profile.
Now going live we want this app to be deployed in a secured web server and send the link to our employees, so that they enter the username and password before accessing the link.
There are around 500+ devices we need to install this iPad App. Do i need to collect all the UDID and then deploy the .ipa file, because Apple documentation says:
Create an enterprise distribution provisioning profile that authorizes devices to use apps you’ve signed.
If not that way, do the user needs to install the profile.mobileprovision file and then install the .ipa file?
We are still unable to decide how to deploy our app because of this issue. We would like to avoid the app approval process because it App handles a lot of sensitive data.
Can some one help me on this, how to do a OTA deployment for enterprise Apps?
As of December 2011, these are the steps:
Create a provisioning profile in your Apple Enterprise account
Set this as the Code Signing Identity under the Build setting of your app.
Make sure the Bundle ID matches that of the provisioning profile.
Select Product > Archive to build IPA file.
Click Share (aka Distribute) button after selecting your Archive.
Set Contents radio button to iOS App Store Package (.ipa)
Make sure Identity in dropdown is the one used from Enterprise account.
Click Next
Select the check box "Save for Enterprise Distribution"
For Application URL put in the URL that points to where the ipa file will be placed (example: http://oursite.com/myApp.ipa)
Click Save. This will save a plist & an ipa file for you.
Place these files on your server with a link formated like this:
<a href="itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=http:/oursite.com/myApp.plist" id="text">
Go to this page from your device and click the link to install the app
Probably the best way to distribute your enterprise mobile app and then securely manage users, groups, data and devices is using a Mobile Device Manager (MDM) tool suite.
iOS provides specific APIs that support enterprise deployment via MDM products with API level features like Per App VPN connections that allow you to firewall a DMZ application server to only connect to a specific signed client iOS app. The vendors also provided authentication SSO integration and encrypted storage on the devices to sandbox your enterprise apps from other untrusted personal apps on a BYOD device.
Here's the Gartner 2013 review of MDM products:
http://www.business.att.com/content/whitepaper/Gartner-MDM-MQ.pdf
The 3 major players are now: Air Watch, Mobile Iron and Citrix XenMobile.
NOTE: I don't work for or have a vested interest in any MDM vendor.
There are two solutions
Try testflightapp.com
It does everything for you. It even has a SDK which I found very useful in debugging scenarios with logs and crash reports.
If you are looking to have your own hosted solution for the enterprise then
http://hockeykit.net/ is the best bet.
It has a client application which makes the upgrade process painless. It also have a server side code which you can deploy on your server.
https://github.com/TheRealKerni/HockeyKit
Update 2013-11-23:
We have been using Diawi happily for quite some time.
You can also use my shell script that will help you a long way with generating the necessary files and links:
https://github.com/sveinungkb/ios-ota-buddy
You do not need to manage UDIDs if you are using an enterprise profile.
To install an enterprise app you need a provisioning profile built with your distribution certificate on each device. See Does an iPhone Enterprise provisioning profile need to specify phone UUIDs like an ad-hoc provisioning profile does?
I've created tool (it's beta, so please be patient with it:)) for generating manifests from ipa file online:
http://manifest-generator.knejzlik.cz/
It generates plist with index.html file. All you need is to put content of downloaded archive to your site.
You can use InstallFish.com for this.
It allows OTA distribution for both IOS and Android. It also has a feature to automatically get the UDID and create your own appstores.
You will still need to provision them via your enterprise account but it makes the whole process of OTA installs much easier, especially for enterprise distributions.
You can use hockey, diawi etc. but sometimes you just want something simple that allows you to host it on your server. I was searching for a simple, basic php script that can do this but did not found any that suited my needs so I wrote a simple single php file server by myself and you can find it here:
https://github.com/leszek-s/LSIPASERVER
It has a list of all uploaded ipa files, upload page with password protected upload and each uploaded ipa has it's own page so you can send a link to specific uploaded ipa to someone. Feel free to use it on your own server.

How to upload provisioning profile to iPhone

I want my tester to test my iPhone app. I add his UDID in devices and add provisioning profile for him device. But how can I upload this profile to him iPhone? Thank a lot
If you want to do a good job of monitoring your testers and builds, I would consider using TestFlight. It will handle all of the provisioning for your apps. It will also give you instant feedback as to who has opened your notifications, install progress, what version they are running. They are free right now, and you simply cannot beat how easy it is to use. For developers, by developers.
He can just drag the profile file onto his device via iTunes. But afaik, the profile also installs itself (at least if you use OverTheAir distribution) from the embedded.mobilepovision file within your .ipa file when installing the app on the device. This might also be valid if you just drag it on iTunes...
You can send it to him, and have him drag it to his device via Xcode or iTunes. But you also have to provide him with your developer certificate that Apple gives you and your key. It could work, but you'll more likely end up with headaches since it takes developers hours trying to install the certificates themselves, never mind for other people. If possible, I would try to get it approved first, but don't launch it, and send your tester a promo code.

Resources