Certificates and provisioning profiles - iphone

I am looking for a more thorough guide on what the different steps of code signing an application. I have read the guide which is available in the provisioning portal, but I do not grasp the concept of certificates and provisioning profiles and the difference between developer and distribution.
In XCode there are also different schemes (using XCode 4). I do not understand the purpose of it. I have successfully uploaded an application to AppStore so I do not need a guide on how to do it. What I am searching for is links to a more detailed "text" where I can read about this, or if anyone wants to explain it for me it will be much appreciated. Thank you!

Everything is easy - certificate is that thing that allows you to produce digital signature over data, binding your developer identity to your application (i.e. ensuring 'developer John' created this application).
Provisioning profile binds developer to devices - i.e. it claims 'Developer John can upload apps to device iPhone1,iPhone2,iPhone3'.

Related

iOS get Configuration Profiles that are installed

The app I am currently working on requires the use of Configuration Profiles in order to connect to a server to download XML. The certificates are distributed in the form of .p12 files, and they can be installed in the settings app in the iPhone like the bottom-left image.
The problem is that all over the internet people are saying that this is impossible.
HOWEVER, Junos Pulse can do this(bottom-right image).
It is only reading the Configuration Profiles which is exactly what I need.
I did not have to install them into the Junos Pulse app. Adding them to the system, and launching the app is enough for my profiles to be recognized.
Thanks for your help :)
The reason the Junos app is able to do this has been explained in a post in the Apple Developer Forums.
Original Question: https://devforums.apple.com/message/660579#660579
Explanation about Junos app: https://devforums.apple.com/message/351326#351326
To sum it up, access to this is not provided in the SDK and is by invitation from Apple only.
You won't. Your application is sandboxed, read the iOS App Programming Guide. Developer profiles are not public information for applications to access.
I am not sure what you are trying to accomplish, but the iOS Keychain services allows you to store and retrieve certificates and keys in a (supposedly) secure way. I have not used the API for other than storing passwords, so I cannot say how it works with certificates, but according to the docs it might work for you.
In particular, have a look at the SecItemCopyMatching function.

Creating a provisioning profile for a device id

I have been given an iPhone device ID and asked to create a provisioning profile (or something where he could run it on his device) for that device ID so he could run it on his device.
How can I do this? This might sound duplicate for some, but I am really lost. Can someone point me to a tutorial or provide me steps to solve this ?
You should have access to some Apple Developer Program (iOS Developer Program in your case). And after successful login to this Program on the developer.apple.com you can see something like this:
Enter into iOS Provisioning Portal and select Provisioning section. You can find there How To area which fully describes this procedure.
This
article will provide complete tutorial to create developer and distribution provisioning profile with specific device UDID's
research testflightapp.com (for distributing after cert creation) but really you will need to create the cert on the apple dev site. so go to the dev site, login, go to ios provisioning and walk through the steps to create your certs.

Xcode 4 Deploying Apps to AppStore

Does anyone know where I can find a complete step-by-step guide for deploying an iPhone app from development tot he app store. I have actually done it before but with the new version of Xcode it is proving difficult.
My ,main problem is with the "Archive". When I validate, I get a lengthy error message. I know it has something to do with my provisioning profile and my keychain, etc. I would like to start over if I can. Apple documentation has never been good at giving you a detailed explanation. Any direction would be greatly appreciated!!
Here is the link you can follow... a step by step Guide... Hope it helps to you.
http://www.edumobile.org/iphone/iphone-programming-tutorials/submitting-iphone-apps-to-the-apple-app-store-a-step-by-step-guide/
I am inclined to reference apple in spite of your statement
Apple documentation has never been good at giving you a detailed
explanation.
Provisioning Portal - Distribution
You can start at the top and work your way down.
Obtaining your iOS Distribution Certificate
Create and download your iOS Distribution Provisioning Profile for App Store Distribution
Creating and Downloading a Distribution Provisioning Profile for Ad Hoc Distribution
Building your Application with Xcode for Distribution
Verifying a Successful Distribution Build
Updating your Application
Sorry if you have actually followed all the steps outlined there and are still having problems.

Ad-hoc style distribution for an iPad app?

I'm talking with a client who is abroad and I'm wondering whether I will be able to send him versions of the iPad app for testing before it's on iTunes.
Is there a solution (e.g. Ad-Hoc?) I could rely that doesn't require jailbreak or anything?
If so, could you please provide me with a link to a guide?
Thank you !
Yes Ad-hoc is what you need, basically you will need to associate your client device identifier (UDID) to a certificate that you will use to sign application.
This is a standard procedure (no jailbreak required) that is fully documented on Apple provisioning portal in User Program Guide (you have to apply ($99) for the developer program and be logged to access this... and it is limited to 100 devices)
Another good thing is to use an "Ad-Hoc" updater such as HockeyKit to ease your client updates and installation procedure...
Yes, indeed, there is an ad-hoc distribution method:
here is its mention on the Apple Developer website. As far as details, I think you have to be in the developer program in order to get direct documentation for that, and sadly I allowed my developer account to lapse. A few key points can be found here
Essentially, you can distribute to up to 100 other iOS users who have your group's apple developer credentials installed on their phone, and the app will remain live for 90 days
Essentially, it's the same headache on the remote side with certs, keys, etc... that you have to do with XCode when developing on the device, but you can put the app on a website somewhere where the remote party can install it on their phone.
EDIT: I found this guide that is presented on a forum if you want to look through the steps.

iPhone deployment management

I have a little app that I want (potentially) a lot of my clients to test and give feedback on before launch, do I really need to setup a massive list of UUID's in the provisioning profile and build against that certificate, email them the .APP file and the certificate?
I was hoping for a, perhaps, private app store? But I cannot seem to find much on this topic
Any advice or help is greatly appreciated here :)
Cheers,
Mark
It seems that even with the Enterprise option, you'll still need to distribute a provisioning profile:
http://manuals.info.apple.com/en_US/Enterprise_Deployment_Guide.pdf (particularly Chapter 5)
However, it looks like you won't need to add each device to this provisioning profile if it's an Enterprise profile, but the users themselves (or the IT support staff) would have to add the provisioning profile to each machine with iTunes.
Without Enterprise profile, unfortunately the answer is YES. And with enterprise profile, the scenario is already explained in previous answer.
If they all have iPhone SDK installed in their Mac, and if your app doesn't require device-specific features (camera, accelerometer...) then you can just zip your app folder in your iPhone simulator's Application Support folder and send it to all your clients.
It works great for a number of my clients, especially to validate the user interface.