UI Testing ASWebAuthenticationSession

UI testing provides additional opportunities to validate the correctness of your application. One challenge though is that sometimes, certain workflows interrupt the test execution, for example, requesting camera permission. To solve this, Apple provides the interruption handling API. However, there is a small problem when ASWebAuthenticationSession is in play. For some reason, when the ASWebAuthenticationSession prompt occurs, the interruption handler needs some help realizing that the prompt is blocking the application....

The Curious Case of Transporter

During this year’s WWDC, Apple announced that a new App Store Connect API would be made available to developers. Buried in this announcement was another announcement that Application Loader would be removed in Xcode 11 and replaced by a new application. Xcode 11.0 was made available on 9/20/19, yet, this new application was nowhere to be seen. Fast-forward to October 15th, and the new application was revealed: Transporter. Once I started downloading it, I knew something was up as the download was quite large....

I Made a Swift Package and It Went OK

I wanted to adopt some new features introduced in Xcode 11, one of which is adding a Swift package to an existing project and then distributing it via GitHub. So, I fired up Xcode and went to work. It went OK. Apple’s documentation does a good job of explaining the basic structure and what to configure, however, I found that the SPM documentation on GitHub was far more verbose and helpful....

Gathering Application Metrics

Typically, you need to purchase some SDK to gather application data, however, starting with iOS 13, Apple provides one for free: MetricKit. To some, this solution may not provide as much identifying data as they want, but, it honors all user privacy settings and is more geared towards improving application performance than user data. Now, you don’t actually have to implement this framework to get that data as Xcode 11 will provide graphs of certain data sets in the new Metrics tab, but if you do want to, setup is very simple....

Migrating to Test Plans

Comprehensive tests are an important part of delivering a quality product. However, the amount of configuration and duplication of work grows with the number of devices you need to test your UI in, get screenshots for, and then you need to multiply that by all of the languages you support. Prior to Xcode 11, you had to use Schemes and Xcode build configuration files to manage your project and run all configurations....