Ad-hoc style distribution for an iPad app? - iphone

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.

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.

iOS Application in Cydia and AppStore

I have an app in Cydia and I want to make the same application but LITE version and put it in AppStore. My question is will Apple reject my app if the check it some how. Actuality my app work with web services so I have real worked domain. And I want to use the same domain or to make another second lite-like domain of the original one...
Thank's in advance..
No, the yxflash team does a similar thing, they have a version of their application in Cydia (because, when they released it, the code was using private APIs), and they have another version (actually 3) in the AppStore called yxplayer. So from what I see there, you should be fine, apple doesn't seem to check those things.
This is an explicit violation of the iOS developer agreement; your presence in the App Store will depend on being obscure enough that Apple doesn't notice what you're doing and nobody tells them. That's not how I would want to do business, but to each their own?
7.3 No Other Distribution Authorized Under this Agreement
Except for the distribution of freely available Licensed Applications and the distribution of Applications for use on Registered Devices as set forth in Sections 7.1 and 7.2 above, no other distribution of programs or applications developed using the Apple Software is authorized or permitted hereunder. In the absence of a separate agreement with Apple, You agree not to distribute Your Application to third parties via other distribution methods or to enable or permit others to do so.
Just submit the app, you will be fine.
Apple simply can't prove that YOU also submit the same app to Cydia.
That is, you can claim that your dog/cat/fish/wife/kid used the code to submit to Cydia during your sleep

How do we publish our ios application for only our customers via our servers?

We have an application which will be used only by customers nationwide and for this reason we do not want to put the application on appstore. Shortly we want to publish it on one of our servers like a zip file then the customers will connect to that server and download the application. Yesterday when I called to apple support, one of the customer represantatives said to me that this is not possible even if we choose the enterprise license. But today I found a link which it says it can be possible. http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html
Now, I want to know that is there anybody had same problem in here? What are the differences between enterprise license and company license? And the most important is that how can we do what we want to do if it is possible?
It's not officially possible.
You could try Enterprise distribution as others have mention, though it's not designed for distribution outside your company. I'm not saying it will happen, but if Apple find you're doing it they might close your developer account. I've never heard of that happening; only you can decide whether it's an acceptible risk.
Apple would say that you should put the app in the App Store. Unless Apple would reject your app I don't see why this wouldn't work. You don't have to make it easy to find and you don't have to make it cheap.
You can limit it to your customers by requiring a log in. Many, many apps do this, from Salesforce to Skype to Twitter.
Your options are:
Use solutions like TestFlight (free AFAIK) and HockeyApp (paid
service / 1 month free trial) which use UDIDs for app distribution - they
allow seamless ad-hoc distributions.
Use Apple's corporate license ($99/yr) + enterprise license
($299/yr) at the same time and use the latter to distribute your
betas/products without managing UDIDs (i.e. anyone with a link to
your server can install the app, but you can introduce serial numbers etc.).
NOTE: using enterprise license obliges user to not share the app
outside the company, but most companies breach the license agreement
(sharing the apps outside company is not traceable AFAIK).
If you plan to distribute your app outside App Store, option 2 with enterprise license is a way to go, but mind the license agreement on other hand.
The Apple representitive was wrong.
With an enterprise account you can sign an application using an enterprise distribution certificate and provisioning profile, which lets the app run on any device with no restrictions.
You can also use Over-The-Air distribution which lets people install the app through a simple http link in Safari (for example).
We use this a lot at my workplace. We have hundreds of people around the world using our (private) apps, all installed via safari.
The standard Corporate license only lets you manage a maximum of 100 devices on your developer account, but if you take this route you can still use Over-The-Air distribution with an ad-hoc distribution certificate/profile. But you have to manage each device id yourself.
If the cost of the enterprise account is not too much for you, that is definitely the route to take.
It's like Apple said, not possible.
You can add device to the ad-hoc profile, this will allow your app to run on 100 device maximum.
You can use the Enterprise license but you will still need to register the device before the app can be installed and there is still a a maximum.
See the comment of Mike Weller.
Mustafa
you can generate your OTA(Over-The-Air) file in which you set your appropriate profile(with client`s UDID) and send that link to your client and easily provide your update.with using little bit help of your web-developer.check here.
hope this is helpful to you mate...

Test iPhone App on customers devices

i have created an app for iphone, I also have a apple developer program certificate to compile my app.
Now I wont to send it to my customer to review. How can I do this? Did he need any certificate?
Thank yoU!
Yes, you will need to go to the apple member center, and go to the provisioning portal.
You'll need to register every device there that wants to use the app.
For that you'll need the UDID (found in itunes, or with the app UDID sender).
Once you've done that you have to create your app-IDs (I usually take com.company.* so all apps with com.company are valid for that app-ID)
When you have done that you can create your provisioning certificate. That's what you'll need to install it on a device.
You can also have a look at test flight app which I use to send my demos to some clients.
Follow the instructions given by apple here.
At first they may seem a lot, but if you do it step-by-step you'll see it's easy.
At least this is what i did!

What's the point of the provisioning process Apple makes you complete in order to test your apps on an iOS device?

Today I walked to through the process of getting my iOS device connected to my computer and running my app. To do that, I had to...
Obtain a developer certificate
Assign the device to my team
Obtain my app ID
and create a provisioning profile
While I understand the process and was able to successfully get my device connected, I don't at all understand the point of all this. Can anyone explain the point of each step in that process and why Apple has us do this?
Thanks so much in advance for your help! It's important to me to understand this stuff at least at a high level.
Apple just wants to torture the developers :)
Joking aside, I don't know why. There's no official explanation why you need those steps, here's my speculation.
Apple wants to make sure that
only the developer registered to Apple can freely install
onto his or her i-Devices
applications of his or her own applications .
This is presumably to forbid the distribution of apps outside of Apple's own App Store. If any of these three steps is not required,
it's easy to imagine how you can "abuse" the developer status to install lots of apps without going through App Store.
This explains why you need to do 1, 2 and 3. In order for XCode and the i-Device itself to check it, you need a provisioning profile. This explains the point 4.
As a rough explanation.. the device only runs signed apps. Your developer certificate (along with your private key) signs your app so it can run on your device. (or other development devices of your nomination)
If you beta test, your Ad Hoc certificate + provisioning profile will allow all devices with their UDID in the profile to run that app. The beta testers don't need your developer certificate, just their device UDID embedded in the profile.
When you distribute to the app store, you use a Distribution profile (along with the team agent key), and that needs additional signing (co-signing?) from Apple before that code can run on the device. Because Apple signed it, the device doesn't care what UDIDs are allowed.
Apple has made a business decision to maintain tight control over developers and apps both during and after their app development. This means that at any given point in time, they have a tight connection between a developer, app, devices, and the app's users, be it through the adhoc distribution mechanism, or through purchases that users make in iTunes Store. We may only speculate what they internally thought that the goals and benefits here are, but as the market has shown, the outcome is beneficial to all parties, as they have shot from oblivion to one of the most popular smartphone platforms in a few years.
One quite straightforward goal is that they intend to maintain control of the distribution channel and make sure the app cannot be officially distributed through any side channels and they have control over all the money that moves, hence the 100-deviceIDs-per-developeraccount limit (so you couldn't distribute your app outside Apple's channel, yet the 100 devices should be sufficient for closed testing).