Develop, Deploy, and Test Apps with Expo Development Client
Erin Bailey
Flutter is Google’s mobile app SDK for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source.
For users, Flutter makes beautiful app UIs come to life. For developers, Flutter lowers the bar to entry for building mobile apps. It speeds up the development of mobile apps and reduces the cost and complexity of app production across iOS and Android. For designers, Flutter helps deliver the original design vision, without loss of fidelity or compromises. It also acts as a productive prototyping tool.
To install and run Flutter, your development environment must meet these minimum requirements:
[crayon-69a2bbf763bf3632506907 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><br />[/crayon]
[crayon-69a2bbf763bf7475729399 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><br />[/crayon]
[crayon-69a2bbf763bfb570227490 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><br />[/crayon]
[crayon-69a2bbf763bff253890410 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c03546255405 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c07275145749 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
Clone alpha branch from Flutter repository using Git and add bin folder to your PATH.
[crayon-69a2bbf763c0b712058762 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 2 |
<em>$ git clone https://github.com/flutter/flutter.git -b alpha $ export PATH=`pwd`/flutter/bin:$PATH</em> |
[crayon-69a2bbf763c11910806100 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
The above command sets your PATH variable temporarily, for the current terminal window. You are now ready to run Flutter commands!
[crayon-69a2bbf763c14233138222 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
Note: To permanently add Flutter to your path, see the reference https://flutter.io/setup-macos/#update-your-path.
[crayon-69a2bbf763c18890984158 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c1b077209273 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
Run the following command to see if there are any dependencies you need to install to complete the setup:
[crayon-69a2bbf763c1f090178473 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 |
<em>$ flutter doctor</em> |
[crayon-69a2bbf763c24527926386 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
This command checks your environment and displays a report to the terminal window. The Dart SDK is bundled with Flutter; it is not necessary to install Dart separately.
[crayon-69a2bbf763c27641775695 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
For example:
[crayon-69a2bbf763c2a062260120 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]

[crayon-69a2bbf763c2e634059908 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c31134683073 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
macOS supports developing Flutter apps for both iOS and Android. Complete at least one of the two platform setup steps now, to be able to build and run your first Flutter app.
[crayon-69a2bbf763c35812231578 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c39561077567 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c3c315679250 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
To develop Flutter apps for iOS, you need a Mac with Xcode 9.0 or newer:
[crayon-69a2bbf763c40219177373 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c4b715918600 inline="true" class="highlighter-rouge"]<br />[/crayon]
[crayon-69a2bbf763c4e624530197 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c52793460876 inline="true" class="highlighter-rouge"][/crayon]
[crayon-69a2bbf763c56375674717 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
With Xcode, you’ll be able to run Flutter apps on an iOS device or on the simulator.
[crayon-69a2bbf763c5a631276820 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c5e293488089 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
To deploy your Flutter app to a physical iOS device, you’ll need some additional tools and an Apple account. You’ll also need to set up physical device deployment in Xcode.
[crayon-69a2bbf763c61061353816 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c64012314471 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 2 3 4 |
<em>$ brew</em> update $<em> brew install --HEAD libimobiledevice $ brew install ideviceinstaller ios-deploy cocoapods $ pod setup</em> |
[crayon-69a2bbf763c68506671951 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
If any of these commands fails with an error, run brew doctor and follow the instructions for resolving the issue.
[crayon-69a2bbf763c6c386344313 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c6f339640178 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c7b666967553 inline="true" class="highlighter-rouge"][/crayon]


[crayon-69a2bbf763c8b119244696 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><br />[/crayon]
[crayon-69a2bbf763c8d292327997 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c90643097157 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c92028684298 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c95599218204 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c97675213408 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c9a515078677 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763c9e303563897 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763ca1677488927 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
To prepare to run and test the Flutter app on an Android device, you’ll need an Android device running Android 4.1 (API level 16) or higher.
[crayon-69a2bbf763ca3058331291 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763ca7887627087 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763cab848432647 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
By default, Flutter uses the version of the Android SDK where your adb tool is based. If you want Flutter to use a different installation of the Android SDK, you must set the environment[crayon-69a2bbf763cae803470451 inline="true" class="highlighter-rouge"]ANDROID_HOME variable to that installation directory.[/crayon]
[crayon-69a2bbf763cb0708146358 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763cb3082658444 inline="true" class="highlighter-rouge"][/crayon]
[crayon-69a2bbf763cb5354772744 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763cb8274259974 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
Here I created a sample flutter_app project using following terminal command:
[crayon-69a2bbf763cbb375195362 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 2 |
<em>flutter create flutter_app cd flutter_app</em> |
[crayon-69a2bbf763cbe153797766 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763cc1692223626 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
To list out all connected devices, please use the commandflutter devices to show all:
[crayon-69a2bbf763cc3125188238 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 2 |
<em>SM G950U1 • 9887fc41594630315a • android-arm • Android 7.0 (API 24) iPhone 7 • a0c2865be4ccfe53aea7c280dded0837873104ae • ios • iOS 10.3.3</em> |
[crayon-69a2bbf763cc7868342278 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
If you have only one device is connected, just use the command flutter run to install your app into the device.
[crayon-69a2bbf763cca251794068 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
Otherwise, if have more than one device connected; please specify a device with the ‘-d <deviceId>’ flag, or use ‘-d all’ to act on all devices.
[crayon-69a2bbf763ccc279819839 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 2 |
<em>flutter run -d 9887fc41594630315a flutter run -d a0c2865be4ccfe53aea7c280dded0837873104ae</em> |
[crayon-69a2bbf763cd0285808999 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
Note: For iOS device, if you see the error as below, please double check the iOS Setup step to fix it.
[crayon-69a2bbf763cd3281419288 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763cd5768886049 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
To generate an APK file, run:
[crayon-69a2bbf763cd8254809922 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 |
flutter build apk |
[crayon-69a2bbf763cdc326996600 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
The output looks like:
[crayon-69a2bbf763cdf555272662 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 2 3 4 5 |
Initializing gradle... 4.4s Resolving dependencies... 2.2s Running 'gradlew assembleRelease'... Skipping AOT snapshot build. Fingerprint match. Built build/app/outputs/apk/release/app-release.apk (7.6MB). |
[crayon-69a2bbf763ce2843262922 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
To generate an IPA file, run:
[crayon-69a2bbf763ce5589697759 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 |
flutter build ios |
[crayon-69a2bbf763ce9564164262 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
The output looks like:
[crayon-69a2bbf763ceb709485695 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 2 3 4 |
Building com.example.flutterApp for device (ios-release)... Automatically signing iOS for device deployment using specified development team in Xcode project: 4X2699XXXX Running Xcode build... 23.5s Built /build/ios/Release-iphoneos/Runner.app |
[crayon-69a2bbf763cef740039922 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763cf2739243238 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
In this part, I will guide you how to use Kobiton Cloud to test your apps. A Kobiton account is required to access Kobiton system. If you do not have a Kobiton account yet, go ahead to create a free trial account and sign in. It takes just a few moments.
[crayon-69a2bbf763d0e951084300 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]




|
1 2 3 4 5 6 7 |
<em>DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("app", "kobiton-store:1024"); capabilities.setCapability("deviceGroup", "KOBITON"); capabilities.setCapability("deviceName", "Galaxy S8+"); capabilities.setCapability("platformVersion", "7.0"); capabilities.setCapability("platformName", "Android"); </em> |
|
1 2 3 4 5 6 |
<em>DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("app", "kobiton-store:1024"); capabilities.setCapability("deviceGroup", "KOBITON"); capabilities.setCapability("deviceName", "iPhone 6 Plus"); capabilities.setCapability("platformVersion", "10.0.2"); capabilities.setCapability("platformName", "iOS");</em> |
[crayon-69a2bbf763d14125321496 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763d17255169779 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge">[/crayon]
[crayon-69a2bbf763d1c641142621 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]