Search Unity

Support for new TestFlight app needed due to Apple retiring testflightapp.com

Discussion in 'Unity Build Automation' started by Wisteso, Jan 26, 2015.

  1. Wisteso

    Wisteso

    Joined:
    Nov 17, 2013
    Posts:
    50
    Just today I received an email from Apple stating that support for testflightapp.com will be ending within a month (hardly any time to prepare at all). Currently, UCB is allowing me to not have to worry about trying to battle with my old 2008 Mac (besides saving me time of course).

    However, the new testflight system has a huge problem in that you will no longer be allowed to upload IPAs without using a Mac. If this remains true and UCB is not able to do the upload.... Well, I may as well just build the app on my own machine, since I'll be needing to use it to do the upload anyway.

    As an aside, I think Apple is making a huge mistake, considering that their replacement system has lots of problems that are still not addressed (and mentioned in the app reviews on the app store), including a needless limit on what operating system can upload the IPA.
     
  2. Mikeysee

    Mikeysee

    Joined:
    Oct 14, 2013
    Posts:
    155
    Agreed, we could do with an answer to this..

    EDIT: UCB is kind of useless without the ability to push to iTunes Connect Test Flight. Android builds are easy to do by yourself, Apple builds are tricky to do unless you have a mac.
     
    Last edited: Feb 2, 2015
  3. hypeNate

    hypeNate

    Unity Technologies

    Joined:
    Apr 4, 2014
    Posts:
    272
    Hi @Wisteso and @Mikeysee -

    This is a good thread! We've been thinking about this a lot on the Unity Cloud Build team. It's a problem that we *definitely* want to solve for our users, and we have some ideas on how to do that.

    But! Before I share our thoughts, I want to give our community here on the forums a chance to chime in with their own perspective:

    What can we at Unity Cloud Build do to help you solve the problem of the TestFlight API being deactivated? What features do you need us to add that would allow you to stop using TestFlight completely?

    Feel free to chime with your answers to those questions, or else just explain how you are currently using TestFlight. That will help us make sure our plans are on track!
     
  4. poshaughnessey

    poshaughnessey

    Joined:
    Jul 12, 2012
    Posts:
    45
    My ideal replacement for Testflight a la Unity Cloud Build:

    1) Be able to set permissions on builds so that only certain users are able to see them
    2) Be able to add users to groups (i.e. dev team, management team, beta testers, etc), and permission builds based upon group
    3) Be able to have certain groups of users automatically notified and on the permitted list for all new builds
    4) Be able to invite people to join via email, and have it all handled seamlessly - them signing up for Unity cloud account, getting on the right team, etc.
     
    andrew-fray and hypeNate like this.
  5. Mikeysee

    Mikeysee

    Joined:
    Oct 14, 2013
    Posts:
    155
    Thanks Nate for replying, I appreciate you taking the time to respond to our concerns.

    Its all well and good talking about replacing Test Flight (using an Enterprise certificate I assume) but the problem is we will still need a mac to do the final build (and push to itunes connect from xcode).

    So if you can solve the problem of uploading to itunes connect so that we dont need a mac at all that would be the ultimate win in my opinion.
     
  6. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    850
    The new Apple system is a bit annoying in some ways (approval process), but the biggest benefit over the old web-based system is dropping the need for registering UDIDs.

    I'm not sure how you can get around that, if at all. Easy for Apple, it's their black box. But if you did, that would be a very good start.
     
  7. hypeNate

    hypeNate

    Unity Technologies

    Joined:
    Apr 4, 2014
    Posts:
    272
    Good discussion so far! Allow me to clarify a couple things:
    • It is not our goal to make iOS development "Mac-less"
    • We use Apple's approved methods for installing your games onto testing devices. To the best of my knowledge, although the TestFlight website and API are going away, those other methods remain. So you'll still need to provision your test devices using UDIDs, the iOS Developer portal, p12, mobileprovision files, etc etc. The difference is that you'll just be using the Unity Cloud Build interface (instead of the old TestFlight one) to manage your groups of testers & devs, notify them about updates, etc. (For example: @poshaughnessey's list)
    Since most of of you were using TestFlight before they were acquired by Apple, I think the most productive direction is for us to determine how you were using TestFlight in it's previous form, and work from there?

    We really appreciate all your input so far!
     
  8. Mikeysee

    Mikeysee

    Joined:
    Oct 14, 2013
    Posts:
    155
    @hypeNate

    UCB will still be useful even if you cant push it to iTunes Connect automatically as a CI server but it wont be as useful for the casual indie developer.

    One of the great things of the iTunes connect route is that you can just invite people via email. They dont have to do anything other than click a link in the email they get which installs TestFlight which then itself installs the app. I believe TestFlight also automatically installs the latest test version as it becomes available too.

    You can flag certains builds as beta / alpha and premote / demote builds as your development progresses. You can manage two separate lists of developers too (alpha and beta) as you go.

    If I understand correctly to use UCB we have to get a user's UUID (a complex process for some users) then add that in the developer portal to the provisioning profile (then I believe you have to rebuild it). I think there is also a limited number of devices (100?) you can register across all your games so if you have a lot of games in development managing that could be tricky.

    Have you guys looking into automating "Application Loader" or the xcode upload process, I dont know if it can be done via command line but I suspect it will require taking a user's apple credentials to do it (not secure) but that would allow you to upload the .ipa to iTunes Connect on a user's behalf.

    Apple are always going to do what Apple want, thats just the way they work but because they own the system (iOS) they can tie everything in neatly, if you continue to use an external approach then you are going to loose much of the power that you get from using Apple's internal tooling.
     
    Wisteso likes this.
  9. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    850
    The problem with automating final builds to iTC is that you need Agent privileges, which is basically the keys to the kingdom.

    I wouldn't want the responsibility of knowing, and having to keep hold of, someone else's agent details - it's bad enough when we have to sign into a client's iTC to set things up for them; I can't imagine UT want that kind of liability either. I haven't looked at the iTC terms in details but I wouldn't be surprised if it's against the rules.
     
  10. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    850
    I think there's space for both. Apple's Testflight is more appropriate for late QA, where we need to circulate more QA users, Localisation testers and so forth than we can host UDIDs, and execs and marketing are asking for builds to show to contacts and colleagues, all of which makes juggling your UDID allotment a game in itself. It's still not a silver bullet - you're limited to how many people can be added as Testers at any one time, and that approval process.

    Old Testflight was pretty simple once you had your Teams set up, and the most important things to know are who is included in the provisioning of builds (assuming you're rotating and adding users, sometimes doing A-B testing), ensuring they have an easy way to keep track of builds (and end-user friendly changelogs) as they're released, and getting statistics from them - be that an interface for bug reporting and tracking, or behavioural graphs - which we can do through Analytics, and maybe that introduces some interesting possibilities for a relationship between "UCB Testflight" and Unity Analytics. Apple own their box, but you guys have an impressive growing toolbox yourselves.
     
    Last edited: Feb 6, 2015
    hypeNate likes this.
  11. poshaughnessey

    poshaughnessey

    Joined:
    Jul 12, 2012
    Posts:
    45
    We've started using Cloud build exclusively to deliver builds to the team. The "shared link" feature is really nice -- I can just post a link into our Slack channel, and I'm done. It actually turns out to be simpler than pushing to Testflight.

    One thing that I do miss, however, is being able to see who has installed which builds. That'd be a real nice-to-have.
     
    hypeNate likes this.
  12. hypeNate

    hypeNate

    Unity Technologies

    Joined:
    Apr 4, 2014
    Posts:
    272
  13. Wisteso

    Wisteso

    Joined:
    Nov 17, 2013
    Posts:
    50
    Sorry for disappearing on this thread guys. After a few days I worried about no response and started figuring out how to make the new TestFlight work for us. (I like some things about the new TF, some things I dont like at all).

    I'd love to keep using UCB, but for my teams specific situation, we really want a "Mac-less" solution. We primarily develop on PCs so that we are able to Visual Studio + Unity integration which is not possible on OSX.

    If UCB starts to require using a Mac for the final step, then we might benefit some from it will still be noticeably slower for us than the prior UCB/TestFlight system since it requires the builder to switch machines and download/upload the IPA. Though it might be slightly preferable to doing everything manually like we are now.
     
    hypeNate likes this.
  14. hypeNate

    hypeNate

    Unity Technologies

    Joined:
    Apr 4, 2014
    Posts:
    272
    @Wisteso - when you say "Final step" do you mean uploading to the App Store for release? Or do you mean uploading to the Beta store (the new TF workflow)?

    Also, would be interested to hear about your experience with the new TestFlight system....
     
  15. Wisteso

    Wisteso

    Joined:
    Nov 17, 2013
    Posts:
    50
    By final step I mean (possibly) downloading the IPA from UCB and then uploading it to ITC for distribution.

    If you are able to create something that completely bypasses the requirement for Apple's TestFlight then that could work nicely for us. The only issue I had with using that before was that Safari tended to require resetting the WebClip for UCB too often.

    If we used UCB exclusively, I dont think we would require much for it to compete with TestFlight when using a small team. poshaughnessey's suggestions would be fine (and maybe overkill for our team). Though for large scale beta testing (hundreds of testers), a system that used UUIDs would not work and we'd be required to use TestFlight I think? For that reason, I'd love if UCB and the new TestFlight could somehow work together.

    Sure!

    Like:
    1. No more UUID management
    2. Builds are accessed through a native app that requires no WebClip profile
    3. Notifications for new builds show up in the iOS push notification area (if enabled)
    4. Very very simple interface for the end user (tester)
    5. Builds work on all of a users devices automatically, once they're invited
    Dislike:
    1. You cannot upload an IPA from anything other than a Mac
    2. Only works for iOS 8 testers
    3. End users must use Apple's mail app to accept invitations. Gmail/yahoo wont work and this is not explained by Apple
    4. Two invitations must be sent for each tester instead of one. The first to join ITC, the second to join the app itself
    5. Adding new testers in TestFlight requires about 8 or so steps, all in slightly different areas of the ITC website
    6. Making someone an internal tester means they must have the technical role permission which I think gives them access to more information than we'd like + external testers are not easy to do (see item 6)
    7. External testers can only be used if you have apple first review your app. (I understand this, but still frustrating)
    8. If you upload an app with the same version + build number, Apple will reject it. The old TestFlight seemed to auto increment the build number? Somehow it worked. (great for Unity which always uses build # of 1.0)
    9. Lots of outdated documentation on Apple's side
    10. While xcodebuild works great for automation of the IPA build, there is no command line "ITC uploader" which means you have to use third party tools which use very fragile APIs to upload an IPA to ITC.
    [Edit: Changed/added some items]
     
    Last edited: Feb 25, 2015
  16. wrobel221

    wrobel221

    Joined:
    Jan 21, 2013
    Posts:
    5
  17. Wisteso

    Wisteso

    Joined:
    Nov 17, 2013
    Posts:
    50
    Gmail attempts to open the link using Chrome for my iOS device (which opens the AppStore instead of TestFlight). I am not given an option to use Safari. Though what you said does make it a less less of a problem, but still not working in a good way.

    That bug has already been fixed as of about a week ago. Currently, the incrementing of build numbers is what we are doing, but it is still something I must do by-hand (or use a shell script) since Unity has no concept of build numbers; only version numbers, which we want to reserve for non-trivial updates.
     
  18. wrobel221

    wrobel221

    Joined:
    Jan 21, 2013
    Posts:
    5
    Thanks @Wisteso for the update. Good to know it's already fixed.

    For invitations I used to copy link from email and paste it to TestFlight, but yeah, it's not that easy to deal with it with clients/testers. Hope it'd be fixed soon too.