Xcode10.1 - Test on many iPhones (no liscense) possible? - iphone

My Apple Dev account says : "Your Apple Developer Program membership has expired." I can run my xcode projects on my real world iPhone.
I have build an App that should be running on several friends iPhones (different versions, iOS´s etc)for testing in the next time.
So, is it necessary to have a paid dev Account for testing on several devices of other persons/accounts? Maybe that my Apple ID allows the access to my iPhone only without a membership. How long will the test apps be running?
THX

So, is it necessary to have a paid dev Account for testing on several devices of other persons/accounts?
Yes. The ability to run on a device is exactly what a paid account gets you. A free account lets you run on your own device, but only under very limited circumstances; it is intended as just a way of seeing what iOS development is like.
How long will the test apps be running?
Hard to say, but you'll find out soon enough. Probably only three or four days, would be my guess.
The correct strategy for distributing apps to your friends' devices is (1) get a paid membership, and (2) create Ad Hoc builds or a TestFlight build.

Related

Distribute iphone app for external beta - sign on behalf of customer

My Company is building an app which we want the external customers to try out before submitting to the app store. Since in-house builds can only be distributed to employees of the company, what's the best way to get the app to beta customers without going through the app store?
If the customer signs up for a developer or enterprise account and gives us their certificate, is it ok to sign the app on their behalf and give it to them?
Thanks!
Update: Number of devices is more than 100.
If you have less than 100 devices you want to run the app on, you can do adhoc builds and distribute them via your own web server or TestFlight. You will need the UDID of every device that it will be installed on, though. I usually suggest people run Ad Hoc Helper for that. See iPhone ad hoc build using Xcode 4 and http://itunes.apple.com/us/app/ad-hoc-helper/id285691333?mt=8
My answer requires devices to be jailbroken.
Since you say you need more than 100 devices, you could fake sign the app. This will allow you to install on as many devices as you need.
P.S. I recommend option #2 on the fake signing link I gave you.

How to create or setup private app store for iPhone/iPad applications

Team,
I would like to know how to set up appstore for its enterprise program, with only iOS applications. To be more clear on my question, I run a business and I have applications created for my business which will be used only by customers to whom I give privileges. I don't want to put these business apps into apple's app store, where anyone can browse and install the application.
Is it possible to maintain a store for my business alone where only those who I provide access to, can be able to browse and install the applications?.
Yes you can.
Thats what companies with products like Afaria and Appearean to name a few do.
In a word: no. You can't deliver apps publicly (outside your own enterprise) to non-jailbroken phones, except via the app-store.
Maybe TestFlight comes close to what you think?
The target device(s) get a link with which they get to your TestFlight site. When they visit it the first time, they'll have to register their device via a profile and then get a testflight app from which they can download your app as often as they want.
Con: No payment possible.
cheers
Finn
Looking for the same thing and found this https://developer.apple.com/programs/volume/b2b/. Its for Business 2 business distriubtion
You might be interested in the iOS Developer Enterprise Program, although it doesn't fit your description exactly.
You can't.
Deployment of iOS apps to any non-employee's stock OS devices, on 100 or more devices, or for a longer duration than past your Ad Hoc Distribution certificate expiration date, requires submitting your App to the iOS App store, and distributing it from there if approved by Apple. This is true for all individual, company or enterprise developers.
For employees of D&B rated corporations, or for fewer than 100 devices for only some number of months, there are other options.

How best to share iOS app progress with customer

I'm making an iOS app for a client, and need to share my progress with them in a convenient way.
At the moment I know of two options:
add their device to my provisioning profile then send an IPA to them
send an app through to them, built for the simulator, and have them run that directly
Neither of these are ideal, as the simulator doesn't give the full experience, and getting UDIDs off non-technical people can be painful.
Are there any other options I should know about?
I use testflight - iOS beta testing on the fly. I used to battle with the same problems you mentioned but once I started using testflight, I didn't look back. What testflight allows is -
You can add the specific customer to send the IPA to.
Progress reports
No need for your customer to go through the complicated Provisioning certificate
No need to register your device
You can even create groups and send different builds to different groups. Like "Test Group" would get more bleeding edge builds whereas the customers might get a more stable build.
Free over-the-air beta distribution. Apps are installed in one tap over-the-air and users will be notified of future builds.
Recruitment: Promote your beta app and select new users that sign up
Works within Apple’s guidelines and rules for ad hoc provisioning and device # limitations
You don’t need to jailbreak or alter your phone.
It is not a replacement for Apple’s ad hoc provisioning profile and device limitations.
Hope this helps...
PS: I do not work at testflight & this is not a promo. Just appreciating a good product...
UPDATE: Recently test flight has launched TestFlight Live, pretty awesome for tracking launched apps. This is all with detailed flowcharts et al. Definitely worth a dekko. Defunct after Apple buying TestFlight (or available in different name)
LATER UPDATE: Apple has bought TestFlight. Links updated.
https://testflightapp.com takes a lot of the pain out of circulating iOS app builds. It's free and it's worked very well for me.

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).

Is it possible to install third-party apps on an iPhone? If not, how is it controlled?

Can I go around Apple and offer applications to users, or do they force you to go through them? How? Just legally?
Aside from the App Store (and jailbreaking), Apple provides two official routes to install applications on the iPhone.
Enterprise Distribution: designed for internal users of a company
Ad Hoc Distribution: allows your app to be installed on up to 100 iPhones
Source: http://developer.apple.com/iphone/program/distribute.html
For phones that are not jailbroken, distribution rules are enforced by the iPhone's code-signing system. The phone won't run any apps that aren't signed by Apple, and the only way to get an app signed is either to get it into the app store or to use ad-hoc distribution.
Ad-hoc is effective but time consuming for more than a few devices, in that you have to get the unique device ID for each device you want to distribute the app to. You then sign the app for that device and send a copy along with a provision file. Some batching is possible-- you can get up to 100 devices in the same ad-hoc build. But if/when Apple finds out you're doing it, they'll close your iPhone developer account (for violating the rules) and then you won't be able to generate any more provision files.
One developer tried using the ad-hoc approach last year when Apple rejected their app (Podcaster). They claimed to have sold something like 1100-1200 copies before Apple shut them down.
Jailbroken phones don't have this limitation, but it's up to you to determine (a) whether the market is big enough and (b) whether enough of those people will be willing to pay for your app. I don't know the answers-- it could well be "yes" to both-- but don't just assume they're true without investigating enough to make a reasonable prediction.
If you wish to distribute applications to phones with out going through the App Store, you must sign each copy of your application for a specific phone handset. If you need more wide spread distribution, all your client phones must be "jail broken". Once a phone is jail broken, it will accept any application for installation.
You can offer applications through Cydia for jailbroken iPhones / iPods. Cydia uses a system similar to Debian's apt. Basically allows users to add custom "sources" (repositories) and install applications provided by those sources.
Obviously this is not supported or approved by Apple since it circumvents the App store and their App approval process.