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-6acc11a2c21a5318484442 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><br />[/crayon]
[crayon-6acc11a2c21a9639390171 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><br />[/crayon]
[crayon-6acc11a2c21ae911087720 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><br />[/crayon]
[crayon-6acc11a2c21b3546797802 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c21b7461444268 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c21bc296984050 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-6acc11a2c21c0859454641 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-6acc11a2c21c7507402341 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-6acc11a2c21cb486789925 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-6acc11a2c21d0346406347 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c21d5702088788 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-6acc11a2c21d9122049108 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
|
1 |
<em>$ flutter doctor</em> |
[crayon-6acc11a2c21e0131654816 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-6acc11a2c21e5912913033 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
For example:
[crayon-6acc11a2c21e9761356009 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c21ee628449457 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c21f3518777145 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-6acc11a2c21f7901149562 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c21fc505078854 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c2200916598040 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-6acc11a2c2205900716826 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c2215016178356 inline="true" class="highlighter-rouge"]<br />[/crayon]
[crayon-6acc11a2c2219453667179 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c221e384140625 inline="true" class="highlighter-rouge"][/crayon]
[crayon-6acc11a2c2222555686008 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-6acc11a2c2227010595293 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c222c680967328 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-6acc11a2c2230981253283 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c2235733501531 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-6acc11a2c223c452662391 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-6acc11a2c2242950063788 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge"><code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c2249419009152 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-6acc11a2c225d665653495 inline="true" class="highlighter-rouge"][/crayon]


[crayon-6acc11a2c2278247058168 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge"><br />[/crayon]
[crayon-6acc11a2c227d842014946 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-6acc11a2c2282148138501 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c2287607850094 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-6acc11a2c228b894831624 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-6acc11a2c2290812852483 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-6acc11a2c2295173198171 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-6acc11a2c2299006462395 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-6acc11a2c229e947985698 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-6acc11a2c22a3209301604 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-6acc11a2c22aa489593293 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-6acc11a2c22b1910521009 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-6acc11a2c22b6323321429 inline="true" class="highlighter-rouge"]ANDROID_HOME variable to that installation directory.[/crayon]
[crayon-6acc11a2c22ba422633979 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-6acc11a2c22bf525704860 inline="true" class="highlighter-rouge"][/crayon]
[crayon-6acc11a2c22c4107247633 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-6acc11a2c22c8992686950 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-6acc11a2c22cd157981264 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-6acc11a2c22d4024669481 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-6acc11a2c22d8596649031 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-6acc11a2c22dd407785789 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-6acc11a2c22e4755992980 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-6acc11a2c22e8335730324 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-6acc11a2c22ed026066262 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-6acc11a2c22f4897570493 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-6acc11a2c22f9351973245 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-6acc11a2c22fe230651374 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-6acc11a2c2302520456046 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-6acc11a2c2309522812559 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-6acc11a2c230e404907739 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-6acc11a2c2315481446793 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-6acc11a2c2319727360825 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-6acc11a2c2320963439612 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-6acc11a2c2325429068890 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-6acc11a2c232c694056494 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-6acc11a2c2330665575544 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-6acc11a2c2335227791626 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-6acc11a2c237b764272945 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-6acc11a2c2380126049856 inline="true" class="highlighter-rouge"]<code class="highlighter-rouge">[/crayon]
[crayon-6acc11a2c2385781761388 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]