And again, you can use real devices, obviously, for manual or for automated testing. So, you are able to run automated tests on actual real devices. So, let's talk about builds. So, when we think about, you know, web builds, really you get to decide what that web build looks like. So, you may have a test version of your web application that hits, like, a different API end point or maybe lives in a different environment. But ultimately, you are in control of what that web build looks like and what goes into that and how it's configured.
For mobile platforms, Android and iOS, they actually have specific build types that you will execute when you create the compiled native binary that will run on a device. Because of this, you actually have to think about what type of build that you need to do depending on what type of testing you are going to be able to do. So, for Android, you have debug and release. For iOS, you have simulator builds, which of course runs on a simulator. And then you have development, ad hoc, app store, and enterprise. I like to say that iOS is always going to be twice as complicated as Android. And so, you will see a theme where for iOS, you have twice the amount of build types, you have twice the amount of signing credentials that you need to use to sign your application, you have twice the amount of developer programs that you have to sign up for and pay for. And so, iOS is always going to be a little bit more complicated.
So, when you think about build types in the context of testing, I like to think of web builds as ideal if you're going to be able to do some browser-based testing. So, you can either do this in a web browser with mobile viewport, or as we saw earlier, you can use Nightwatch to launch an actual mobile browser on an emulator. This is great because there's no code signing or specific hardware required. If you're running in a browser, if you're running on emulator or simulator, you don't necessarily have to go through the signing process. If you haven't gone through code signing before, it's creating a signed bundle that verifies who created the bundle, that they were authorized to do so, and that it was not tampered with or altered since the time that it was created. Builds require specific credentials that need to exist on the machine that you use to create the build. So, it can be difficult to just spin one up if you don't have access to those credentials. So, that's why web builds and virtual device builds are ideal for testing, because you're able to just create those on your own. For Android, we have debug builds, which are also ideal for testing because, again, they don't have to be signed, and they also are an unoptimized version of the build. So, if you need access to the underlying code, it's easier to identify and debug. For iOS, you have your simulator builds for virtual device testing. If you want to do internal real device testing, you're typically going to use a development or an ad hoc build. And if you'd like to upload to test flight, you're going to need to do an app store build, which is a certain type of build. Now, development, ad hoc, and app store all do require code signing. All right. Let's talk about app delivery.
Comments