I know the obvious answer : it's for distributing apps on the app store. But I have an app approved for release on iTunes Connect with no App Store profile. I just have an Ad Hoc distribution profile installed. What purpose does an App Store distribution profile serve ? I submit my apps through the Test flight program, is it not a problem as long as the build was verified and approved ? I don't want to risk the app somehow not working once it's on the app store.
To understand what is the purpose of App store provisioning profile we need to check the difference between them first.
Ad-Hoc Distribution :
By using this, App can be installed on 100 devices designated by the developer on his provisioning portal. We can prepare build using this only for beta testing or demos.
App-store Distribution :
By using this we can prepare build of the App to deploy to App store submission.
Your case:
As you mentioned that you submitted app with using ad-hoc distribution profile & its approved & ready for sale now.
Try to install that live app on the device, for which UDID is not added to Ad-hoc distribution profile. It will not allow to install.
That is the only difference.
I hope it will help you.
If your app made it this far and was approved for release, you're fine. In all probability if you go to the Member Center you'll find that an app store distribution profile was generated for you.
This should be helpful:
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html
Code signing is used in combination with your App ID, provisioning profile, and entitlements to ensure that:
Your app is built and signed by you or a trusted team member.
Apps signed by you or your team run only on designated development devices.
Apps run only on the test devices you specify.
Your app isn’t using app services you didn’t add to your app.
Only you can upload builds of your app to iTunes Connect.
If you choose to distribute outside of the store (Mac only), the app can’t be modified and distributed by someone else.
Related
I have developed my iOS App and used developer provisional profile(Free account). When I give my App to other users for testing they aren't able to install the app on their device with error unable to download App "MYAPP" could not be downloaded at this time. I don't find any solution for that please suggest me something.
The free Apple developer account doesn't have the capability to distribute the app. You need to have the either Apple Developer or Enterprise program.
You cannot even add the devices, check below for more information. Check the Sign in with Apple ID or 1st column for your case.
As a free account, you have access only to Xcode developer tools, Xcode Beta releases, Developer Forums, Bug Reporter & Test on the device (debugging).
Source :
Apple developer portal - Choosing a Membership
Hope it helps.
Enroll to apple developer account either for App Store or Enterprise based on your requirement.
Ad-hoc
You need to add UDID for users device to sucessfully install build. Create build using developer certificate and profile. It can be distributed and installed though iTune
App - Store
This lets you upload build on app store. Combination of distribution certificate and profile.
For above cases ensure that you have created build using valid profile.
As others said, you need to purchase/ enroll in development program in order to create installable ipa.
Then you need to add testing devices UDID (user can get it from iTunes) to testing devices in your apple developer account, then you can create a valid ipa for testing.
I am depending on push notification services in my iPhone app, and tested with development and ad-hoc production certificates it is working fine. But when I submit the app to the App Store, I have to create Appstore production certificate, is there any way to test APNS with this certificate before publishing the application to Apple.
I have been able to Package an Ad Hoc distribution which provides an .ipa for iOS devices that I have specified in the Apple Developer Center.
I then send the .ipa to the specified devices using Diawi.com (which is an awesome service like test flight), but can be used prior to submitting to the app store (like the old test flight)
Here is the actual problem. Using the Appstore production profile, we can create an .ipa file but we cannot install it on the device directly, it has to come from Appstore. It can only be uploaded to the App Store. So, the problem is as we cannot install the package on iPhone we cannot send the push notifications to test it before submitting the package to Appstore. So, technically it is not possible to test the set-up. I was just curious to know if somebody cracked it.
The APNs production certificate is universal, so it does work in both development and distribution, see Apple documentation here.
For the AppStore distribution certificate:
Before uploading your app to iTunes Connect, optionally distribute it for testing on registered devices using an ad hoc provisioning profile or team provisioning profile.
Here's the whole run-through on how to achieve this: App Distribution Guide.
Another option is using TestFlight, details can be found under the previous link.
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.
What is the difference between a development provisioning profile and an ad hoc provisioning profile?
Couldn't we always use the ad hoc profile for everything but the store?
An ad-hoc provisioning profile is used later in the development process, particularly when you want to distribute your app to a small or medium size group of testers that are not included in the iOS developer program for your organization. An app deployed with an ad-hoc provisioning profile will be almost identical to the version you submit to the App Store (ie. it will need a distribution certificate for push notifications to work, etc.)
Of course you could add your QA team and betatesters to the organization and use a development provisioning profile, but this approach has many disadvantages:
You may end up with many development certificates, making it difficult to manage them.
You are giving your betatesters the right to compile and run the app on a device. (This is a extremely bad policy.)
You want to test your app in the closest possible environment to the App Store environment. Development environments, like running the app from Xcode, can masquerade some bugs that will show up when you publish your app.
All Types of Provisioning Profiles explained in summary
Provisioning Profile simple definition/use
Provisioning profiles are used to authorizes a set of known iOS devices to run and install a given iOS app. If a target device have a profile installed matching it's own device Unique Device ID (UDID) and that of the app it is about to install then the device will be able to install the app otherwise the device won't be able to install the app.
Types Provisioning profiles and their use
There are 4 types: -
1. Development: - Used in development phase of the app to run the app on simulator and developer devices. (If a developer device is not in this list the in-development app can not be installed).
2. Ad Hoc: - Is provided to distribute the app to a known finite set of iOS devices outside the AppStore. These are very commonly used to distribute an app to testers via a third part testing service.
3 Enterprise:- Enable large enterprises to distribute inhouse applications to enterprise approved devices in a manner which is independent of the AppStore.
4 App Store:- Used for AppStore or for TestFlight.
Googling this topic I get a sense there are three ways apple allows to distribute the app to end user. However it's still quite vague how exactly each one of these methods actually work and differ.
Ad Hoc Distribution - how does this really work. does this method not require the app to be submitted on app store ? If Yes , then where will the user download the app from and how the installation procedure works.
In-House Distribution - how does this work ? some text i came across suggests we can host the app on a private enterprise server and allow users install from there. If this is true apple would have no way to regulate the app.. not so clear.
App Store deployment - this one i understand how it works as a consumer of some apps i have purchased from app store. In this case the app will have to be submitted to app store first and then available for any number of users to install.
The other question I had on the same context is to be able to deploy the app via one of the ways what type of dev license is required to be procured from apple ?
Ad Hoc Distribution - This is most commonly used for sending the applications to beta testers, you register their UDID in your Developer Portal and then send them the app bundle and a provisioning profile. They drag these into iTunes and can install the application.
In-House Distribution - If I recall correctly this is only available if you have Enterprise license, you can deploy this app to all devices associated with that account (so all of your companies phone for example)
App Store Distribution - This is when your app ends up in the App Store, you submit it to Apple after code signing it, then they review and it gets accepted.
Hopefully that clears things up a bit for you.
For distribution methods 1 & 3 you must have paid the $99 developer fee, number 2 you must have paid $299 (I think that's the right price) for the enterprise developer license.
For the Ad-Hoc thing: You can add up to 100 devices per year to your dev portal. Those 100 devices are then able to install specially signed Apps from you.
To add a device to your portal you need it's UDID. To distribute an App via Ad-Hoc you need to create a special Ad-Hoc distribution profile for the App, sign it with this profile and then send the compiled .app file bundled with the profile to your users. They will then be able to install the app via iTunes, just like they've downloaded it from the App Store.
Note: Removing a previously added device from the list does not increase the device count by.
That's pretty much it, am not familiar with in-house distribution.
Apple's definition of "in-house" distribution basically means: buy an enterprise developer account.
http://www.apple.com/iphone/business/apps/in-house/resources.html