Categories

We’re excited to announce the release of App Tokens and our much improved SDK v1.2. Thanks to all of you who took the time to check out Apps in Area51 and test drive the updated SDK and App Tokens. Your feedback is much appreciated.

Reorganizing TestFlight around Apps allows us to bring you improved SDK reporting and performance. There are a few small changes in how you’ll be interacting with your builds.

App View

You’ll notice that all your builds will be grouped into apps by their bundle identifier. Click a row in the new Apps view to view all your builds associated with the app. This gives you a dedicated URL for all the builds associated with that app. Your latest build will still be accessible from your app list by clicking the build number in the ‘Latest Build’ column.

Old Builds View

image

New Apps View

image

Dedicated Build List View

image

You’ll also notice that Team Tokens have been deprecated and replaced with App Tokens.

Why the switch to App Token? We began to notice that over time, many of you were building up quite a large list of build version and sub-versions of your apps. TestFlight Live brought about new challenges that forced us to make decisions on which build data belonged with which application. App Tokens would give our developers more control over which data goes into which application, more accurate reporting, and overall improved performance. Learn more.

Finding your App Token

You can find the App Token by clicking on an app and then selecting App Token from the left navigation. If you haven’t uploaded a build yet you can create an app by clicking the + in the top-right of the global header and choose ‘Create Application’.

image

The App Token page will give you details on how to implement the new App Token in the SDK. Click ‘SDK Debugger’ in the left navigation to ensure that your token is properly implemented. You will not lose any data by switching to App Tokens.

SDK v1.2

App Tokens must be used with the SDK v1.2.

  • Added application token support
  • Removed Team Token support. As of version 1.2 -takeOff: must be called with the App Token. Go to  https://testflightapp.com/dashboard/applications/, choose your application, and select App Token in the left navigation to get the App Token for the application
  • Removed support for armv6
  • Exception handler now returns instead of raising a SIGTRAP
  • Resolved an instance of close_file being called on a bad file descriptor

Read SDK v1.2 Documentation

SDK v1.2.4 beta

SDK v1.2.4 beta is available with several bug fixes and updated documentation. In addition, the SDK v1.2.4 beta is now using NSString constants for  setOptions: method to make sure typos are no longer a problem.

Bug Fixes

  • Fixed bug that caused crash reports to sometimes not send immediately (they would be resent later)
  • Fixed bug where logs were not sent on crash
  • Fixed bug where empty crash files were created (but not sent)
  • Remove potentially conflicting function name UIColorFromRGB
  • Fixed crash on bad in app update data
  • Max number of concurrent network connections has been reduced from 4 to 2

Read SDK v1.2.4 Documentation

As TestFlight continues to grow and prepare for performance improvements with our SDK and a host of future services, we’re reorganizing TestFlight to be centered around apps.

Apps


image


Your latest build will still be accessible from your app list by clicking the build number in the ‘Latest Build’ column. Clicking a row will take you to a dedicated page for all builds belonging to the selected app and all uploaded builds will be grouped into apps according to the bundle identifier.

App Token

SDK v1.2 requires an App Token and includes various improvements and bug fixes.  We are deprecating the usage of Team Tokens in the updated SDK in favor of the new App Token to allow for more accurate reporting and reliable performance for new and upcoming SDK features. Download SDK v1.2 here.


image

Find an existing App Token by clicking on an app and then selecting App Token from the left navigation. If you haven’t uploaded a build yet you can create an app by clicking the + in the top-right of the global header and choose ‘Create Application’.

The App Token page will give you details on how to implement the new App Token in the SDK. Click ‘SDK Debugger’ in the left navigation to ensure that your token is properly implemented. You will not lose any data by switching to App Tokens.


Give it a whirl and let us know what you think!

You asked for it, and we’re excited to share some great news! Sign up and be among the first to get early access to what we’re launching next. http://tflig.ht/XSBy4m

Some of you may not be aware of our SDK Debugger. The Testflight SDK debugger allows you to see your SDK events before they hit our processing queues. Use the SDK Debugger to diagnose whether or not you’ve correctly implemented the SDK and monitor events that are being sent with your SDK Team Token across all of your applications.

You can find it by selecting a team in your team dropdown then clicking “SDK Debugger”.


image

Implement the SDK and watch the events populate the debugger.


image

The SDK debugger has been updated to improve performance and now quickly loads all events up to present time.

Additional Fixes:

  • ‘Clear’ button removes all events up to the present and refreshing the page will no longer bring them back into view
  • New events now appear even if the stored maximum (currently 200) is reached

Find this valuable? Have any suggestions? Contact us

With the recent release of our new mobile redesign, we were able to improve the install experience and provide you with some much needed account & device management tools. Additionally, we’re happy to announce that Anonymous Builds are once again fully supported and Build Share Links no longer require authentication.

TestFlight mobile was a complete rewrite and we encountered some issues along the way, but with your help and feedback, these issues have been resolved. Thanks for your patience and support!

@testflightapp new interface for mobile is AMAZING - thank you, much needed and long waiting. – Mohamed Alkady (@malkady)

The new @testflight mobile website is the best “native feeling” web implementation I’ve seen – Brit Gardner (@britg)

Gmail needs to make their mobile application more like TestFlight’s.
– Dan Loewenherz (@dwlz)


As always, we value your feedback. Please let us know how we’re doing by completing our survey.

Improvements

  • Anonymous Builds support. Share Links no longer require authentication.
  • Builds requiring a provision now redirects to the details page if the install button on the builds list is touched
  • More meaningful messaging for invalid builds detail page
  • iPhone 5 detection to accommodate restore from previous device scenarios
  • Private browsing detection. This must be turned off in order to properly install builds.
  • Direct Links are now saved when a user is not logged in and will redirect to original requested page after login
  • More meta information is displayed in the details screen (Device Model and Type)
  • Load More for users with Large App Collections. This redesign affected both the Build List and Permitted Apps list.
  • Improved performance around Builds and Device lists
  • Quick access mobile help documentation

Fixes

  • Fixed iOS 4.0 and earlier install link
  • Fixed Reconnect Device
  • Fixed Removing current device
  • Fixed Device Connection and Change Ownership
  • Fixed Team removal
  • Fixed Enterprise Builds and Anonymous Builds lists
  • Fixed Desktop Upload Icon display issue

Updated Header & Footer

You’ve probably noticed that our header and footer has updated! We feel that the improvement gets our header out of the way so you can focus on the task at hand. The new header features an improved team dropdown that drives home team context for access to team info and your team SDK debugger, clear calls to switch team context, a condensed account settings dropdown, and quick access to upload build and add teammates. Our updated global footer clearly organizes important areas of our site for easier access across the board.


Team Invites

Ever wonder who invited a member of your team? Invitations now show who created and sent the invitation. We also had a scenario where users who were invited were deleting their accounts and then showing up in the invite list as a deleted user. This has been addressed and deleted users are no longer appearing in the invite list


Tell us how we’re doing and fill out our customer survey

TestFlight: Flooded

Getting flooded with notifications?

We’re here to help! As the developer community scrambles to adjust to iOS 6, we’ve had to make some changes here at TestFlight as well. Here’s a few tips to help your testers get over pesky hurdles and get your SDK up to date.

Device re-registration fixes for iOS5 and iOS6

We’ve seen some errors surface with device re-registration due to our SSL certificate update changing from www.testflightapp.com to a wildcard cert *.testflightapp.com. These steps will help get problematic devices back to testing in no time:

  1. Remove the TestFlight webclip profile (settings>general>profiles)
  2. Clear the cookies and cache
  3. Restart Device
  4. Login to https://testflightapp.com/dashboard/ on Mobile Safari.
  5. Touch register and complete the registration process.

For more information, read our related support article

Get iOS 6 compliant! SDK 1.1

Now armed with armv7s and iOS 6 support! Download TestFlight SDK 1.1 and get better control of your tester feedback, log customization, and more. Don’t have our SDK implemented yet? Check out our documentation here.

Download TestFlight SDK 1.1 Now

Desktop App Updates

We’ve just released Desktop App Version 1.01 (294) to accommodate iOS 6. This fixes variable exports related to Apple’s new codesign_allocate tool and SDK not found errors. Update to the latest version now!

In short, performance has improved but we still have some work ahead of us. Specifically, TestFlight should be much faster but TF SDK / TF Live improvements are still in progress.

Below is a list of completed improvements and upcoming items.

New Faster, Simpler SDK front ends

We are primarily a python shop, in wanting to stick with what works and add some simplicity to our stack we built a raw gevent based server. These servers depend on a local redis instance that slaves off our redis cache master. The complete server role looks like stud -> nginx -> gevent -> local redis. TestFlight core updates the cache master and redis takes care of synchronizing the front end caches. We are really pleased with this approach. It has decoupled the SDK from Web nicely and it has given us the ability to burst to the cloud when necessary.

For developers interested in other details here is a hit list of some of the less obvious things we ran into:

  • [Improvement] nginx did not handle our SSL traffic, moving to Stud showed significant improvements.
  • [Improvement] one of our bare metal SDK boxes keeps up 4 SDK VMS. Bare-metal ftw!
  • [Cool] “fab deploy.sdk:production,git tag”, now pings a deploy server which packages the git tag and each SDK front end periodically checks in with the deploy server to get the latest package.

Faster TF Core

TestFlight users are first and foremost distributing betas. Not only do we take pride building tools developers love to use, we also strive to provide a seamless experience for your testers and stakeholders. In the last few weeks we have made strides in improving the reliability and performance of TestFlight core.

The addition of the new SDK front ends isolated SDK web traffic and database read traffic. This has had the biggest impact on the perceived performance of TF core. Here are are a few of the other things we addressed:

  • [Fixed] Turns out our continuous deploy process since migrating our infrastructure caused failed requests . Formerly we had gunicorn operating on two ports behind nginx, so nginx masked this issue by kindly directing the request to the second port. We’ve resolved this.
  • [Improvement] Switched from meinheld to gevent as our gunicorn worker class. This improved performance by virtue of it having more consistent behavior and better logging so we could actually see the issues that come up.
  • [Fixed] Killed a few slow queries that brought us to our knees.
  • [Improvement] Changed our mysql replication strategy to reduce IO.
  • [Improvement] Decoupled our message queues so TF Core and TF SDK, isolating failures.
  • [Improvement] Decoupled data source dependent features (SDK Debugger, Activity Feed, TestFlight Live). Decoupling these introduces some isolated failures.

No More Failed Uploads

Uploads fail for a variety of reasons. Mostly they fail because the upload IPA does not make it past our validation checks. But more recently they started to fail simply because it was taking way too long to upload and the clients browser would give up, or by the time the binary passed through nginx to our front ends, our front ends were overloaded dealing with other things.

The good news is that those problems are now behind us. So, failed uploads due to system reliability should no longer be an issue. If at any point you do have upload errors, please let us know.

Current Focus

With all of the effort and improvements on the SDK front ends we have pushed the bottleneck back to the SDK workers and persistence. A new backend for both the data processing and persistence has been under way for the last couple weeks, and should get integrated this week. If you see some oddities with the site please let us know. We are putting in the effort to make the transition seamless but very much appreciate the heads up in the event we’ve missed something.

Next Focus

Once we have the improvements to the SDK workers and persistence flying we will turn our focus to TestFlight Live. We look forward to resolving the issues and appreciate your patience.

SDK Networking Bug!

There has been quite a few reports of the TestFlight SDK conflicting with AF Networking (https://github.com/AFNetworking/AFNetworking/issues/307). If you are having this issue please send a sample app that can replicate to http://help.testflightapp.com. We’d like to resolve it immediately but so far have not been able to reproduce the issue.

The TestFlight Crew

P.S. We’re hiring! (https://testflightapp.com/jobs/)

When: Sunday, April 30 at 3PM PST (Sunday, April 30 at 22:00:00 UTC)

Estimated downtime: 20 minutes

Continuing our efforts to bring you a faster more stable TestFlight we are migrating the primary TestFlight database to new bare metal hardware.

This system maintenance should result in less than 20 minutes downtime.  The procedure is to lock the current database to prevent writes, swap the host records and DNS, and rejoice.

This beefier setup will also give us additional capacity to begin the next round of improvements that we are making to the overall system architecture and infrastructure.

Thanks,

TestFlight Crew

Today TestFlight will be switching everyone over to our new UI. A lot of elbow grease went into the new polish, while keeping the great features you expect from us. We’re investing more resources into these tools so it will grow to meet everyone’s needs.

Some of you may have already experienced the new UI as you ventured over to account settings and flipped on the v2 switch in Area51. Kudos to everyone’s curiosity and excellent feedback!

For those of you who haven’t seen the new UI, you’ll see a few notable changes:

  • Build options can be accessed by selecting the build of your choice from the build table
  • Build history can be accessed by clicking on the More button for apps with multiple builds
  • Once in build context, find your way back with a helpful breadcrumb to give you context as you navigate between apps
  • Managing your teams and testers got an overhaul with user details now launching into a modal window. Manage your users, distribution lists, and invites just as you did before






We’re excited about these improvements and hope you find them valuable.
Thanks again for all your support and great feedback. Please continue to share that with us. Enjoy your next flight.

- the TestFlight crew