With TestFlight being replaced by iTunes Connect, what will happen to enterprise app beta testing? - ios

I couldn't find anything about enterprise beta testing in the iTunes Connect Developer Guide so I hope this question doesn't seem too out of place here. Also, it says here that even the beta will be subject to a review. We are using private APIs so the app will not pass the review.
What I want to be able to do is continue beta testing our enterprise apps without any AppStore reviews. Can I do this on iTunes Connect or do I have to find an alternative now? If its the second, then could you please recommend any possible alternatives. Thanks in advance!

Let's see if Apple is coming up with some updates to the current version. It's not only the Enterprise testing support that is missing ...
But you can easily jump to another Beta Distribution Platform, some free, some paid, some freemium:
https://crashlytics.com/
http://www.hockeyapp.com/
http://ubertesters.com/
https://www.testfairy.com/
http://www.applause.com/mobile-sdk
https://appblade.com/
http://www.installrapp.com/
https://deploygate.com/
... and probably others I don't know.
Or you could host your own:
http://www.hanchorllc.com/betabuilder-for-ios/
http://hockeykit.net/
I personally switched to Crashlytics, it covers all that I need and it's free. Some things are better than in TestFlight, some aren't as good. But your choice might be different - some other platforms offer crowd testing for example or premium in-app test features.

You will never pass the AppStore review when using private APIs. Thus the only possible solution is to switch to alternatives. TF is not for enterprise app testing and we need to take it as it is.
I found nice article on beta testing enterprise apps without AppStore review, not sure if it is something you were looking for, but the main point is the same as yours. When testing enterprise app, you need to support different OSs (not only iOS 8) and you need to distribute your build without any reviews. Today TF is going to shutdown these both features.

Related

Block app install from AppStore and app delete using Swift

I am aware that we can block safari content using swift code. I am interested in finding out if we can restrict install of certain apps from AppStore using similar approach ?
Also, is it possible if we can restrict a user from deleting the app from device (not from phone settings but from code) ? Even if Apple does not allow that to publish such app, I am looking for a solution as a part of research.
There are two things you mentioned.
First, can restrict install of certain apps from AppStore
Using Swift code I feel there are no Public API provided by Apple for the developer till now but there is a similar way that is called Device Enrollment Program.
The Device Enrollment Program (DEP) is part of the Apple Deployment
Programs (ADP), which help businesses and educational institutions
easily deploy and configure iOS and OS X devices. DEP provides a fast,
streamlined way to deploy institutionally owned iPad and iPhone
devices and Mac computers that are purchased directly from Apple or
participating Apple Authorized Resellers or carriers.
For more visit this developer guide.
Second: restrict a user from deleting the app from device
Same response for that, till now no Developer API, but lets say if we see this as a part of research and we develop some POC still, it does not make sense for me at all (It's my device and I install the app for making my life easy and better if I don't want to use it anymore, I need an option to delete it) and I don't think so this will be possible in future as well because the USP for iOS device is user experience and we can't make this like that.
I also want to hear something from others and if possible give the use case why you are looking a solution like that.
I hope this will help.

Apple TestFlight: Is it allowed to upload 2 beta apps for an A/B test?

I need to run a beta test for an iOS 8 app through Apple TestFlight. Is it allowed to upload 2 versions of a beta app for an A/B test? (I would like to switch the app icon and some other things to check what works better for the users.)
Notes on bounty:
Especially interested if there are any experiences with submitting two
similar builds for external testing, as builds have to go through the
(albeit lighter) review process.
I would presume it would be OK, as one can submit freeform notes for
the reviewers and explain the situation—AND because, in any case,
externally tested apps have to go through the normal App Store review
process before going live; so acceptance in external testing wouldn’t
be a free ticket to App Store.
But these are just my assumptions and hence the bounty. Has someone
done this? With negative or positive results? Or both—review processes
are notoriously independent and, at times, arbitrary.
I’m not interested in interpretations of review
guidelines,
but how they are executed in practice.
Or should this all be handled inside the app with some A/B testing
framework? (Which is unfortunately more work than just creating two
bundle IDs… And this wouldn’t help in testing the app icon)
In order to have 2 active builds in test you need 2 apps (different bundle ids), the only choice you have is either through the same account or different accounts. It's easier to handle in the same account, less context switching for management.
We did both successfully without any issue raised from Apple. We did not put any special mentions in the review notes either.
Eventually you end up with more dead projects in your account but its only an issue for you, Apple wont complain.
Why tough
A/B testing can be done in the same build except for some things like you mentioned (app icon). Usually this is handled through surveys tough.
The only advantage of having 2 apps is that all users can test both versions in your A/B test mitigated by their willigness to spend time testing both.
Disadvantages that jumps to mind:
sooner or later you will kill one of those version, potentially loosing some of your beta testers that chose only that version. Mitigated by the fact that you may not need beta testers after you release your appstore version
you wont be able to control who has which version to insure proper distribution and move users from one to the other unless you are ready for lots of hands on communicating with your beta testers.
I have not been able to have multiple versions in TestFlight. If I were to do this I would use a separate provisioning file and iTunes Connect account. There are a few steps to change the provisioning account and the app name so it is unique, but I think that is the only way to get around it. However to use external testers (since internal testers are limited to 25) you will have to go through the review process. Apple might object to having to review the same app twice if they caught it. I would advise rereading the Terms and Conditions, remembering you are submitting for Beta App Review.
As of April 11, 2017, Testflight allows you to you can distribute and test multiple builds at the same time.
https://developer.apple.com/news/?id=04112017a
You can upload multiple builds but you can test only ONE at a time and there is no way to do what you want unless you make a new unique app identifier and upload the same app on the new app identifier APP.
It is possible to upload more than one builds of same version!!! Just change the build number. Example, 'version 1.0, build 1.0', 'version 1.0, build 1.1'. You can see different builds in Test Flight.

When publishing an Apple app, can a third party get access before published?

I am publishing my first iOS app to the App Store. However, the company that hired us wants to see the app work before we publish. Is there a way under the $99 developers plan to allow them to see the app work on a real iPhone?
For completeness there is another way. Although I've used TestFlight very happily for years, it can prove to be too complicated for some testers!
If your app has been approved by Apple (but you've set release date in the future), you can give people promo codes (which you can get from iTunesConnect) and they can download the unreleased app. This is great for getting your app to reviewers.
From iOS Developer Library:
Promo codes apply to a specific app version, so when users redeem
promo codes for a version of an app that hasn't been released yet,
they download the prerelease version.
https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/ProvidingPromoCodes.html
Obviously in your case, you probably want to get your client's approval before even submitting to Apple, therefore #Anil's answer is better for you.
This is possible through multiple platforms.
iOS 8
As mentioned above, refer to the following link:
http://blog.thebetafamily.com/2014/09/10/testflight-beta-testing-ios-8/
iOS 7 and below
Test Flight - https://www.testflightapp.com (Acquired by Apple and available on iOS8 as described above)
Hockey App - http://hockeyapp.net
Test Flight is free and simple to use. All you need to do is upload the certificate and it'll take care of the rest. Test Flight used to support other OS like Android. But after the acquisition, I think it only supports iOS.
Hockey App is also simple. But only supports certain numbers of builds or projects for the free version. Hockey App provides direct update during the app launch if a new build has been uploaded.

sharing ios development between developer and non-developer

I'm about to make an individual iOS dev account, but I would like to share my work with a colleague or two for input that do not have an account (they have Xcode). They will look at the code maybe a bit, but mainly to test the app itself and provide feedback for me. Currently I don't have an account and what I have done is take a screencast of the app in the simulator and send the screencast. Obviously not ideal. So what are my options to share my progress on a daily basis? I think just to have them run in the simulator on their end is fine, until the app is almost complete then maybe on their phone would be good too. Thanks,
rc
A) look at testflight (testflightapp.com) - it's a site which allows you to email ad hoc builds of an app to testers.
B) put your code into version control and give them access. (ie GitHub.com) then they can build it themselves with Xcode onto their devices.
I'd go with A, it gives you more control and the potential for fewer support questions :)
I'm not sure why you would want non-developers looking at your code but I'd that's really needed, option B :)
The type of developer account you get and your ability to share your code are two unrelated issues. Unless you want your colleagues to be able to build your code and install it on test devices, they don't need developer program subscriptions. You can share your code with them in whatever way suits you (give them read access to your version control system), and you can build test versions that they can install on their devices. The only thing they won't be able to do is to build the app themselves for installation on a device.
If the main purpose is for testing, then get an enterprise certificate, sign the app with it and send the ipa file. They will install it and test the app.

How do you do "public betas" on iPad?

A friend of mine is interested in developing an iPad application, and he's heard that "most iPad apps don't offer public beta versions".
Is it true? What mechanisms can he use to distribute a private or public beta version of his app?
You can distribute them in a couple different ways:
A) distribute the source code. This will allow other developers who have an apple developer account to compile and install the app onto their iPad.
B) Release a version 1.0 on the app store and mention that it is still very rough/may have some bugs, and to please provide feedback (obviously only works for public betas)
C) Create a repository for installation of the app via something like Cydia on jailbroken devices. This will allow anyone with a jailbroken device to try your app without the need to give them the source code. Obviously this will allow you to do certain things that you wouldn't be allowed to do normally, so you'll have to make sure you don't do any of those things inadvertently.
All of this answer is re: Private beta - which is mentioned in your verbiage but not your title.
There used to be a website called ibetatest.com that did iOS beta testing (I have no affiliation with them, only remember seeing their offering, which looked interesting).
Additionally, if he wants to do it himself, he'll have to find users of the iPad who are willing to beta test for him. In the distribution instructions on the apple developers site, it will tell you how to make ad-hoc distributions available which he can then disseminate to his beta testers.
This is the short answer, it's quite involved, but once you've gotten to that point, it's something he will be intimately involved with.

Resources