

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Buat dan uji aplikasi iOS dengan AWS CodeCommit, AWS CodePipeline, dan AWS Device Farm
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm"></a>

*Abdullahi Olaoye, Amazon Web Services*

## Ringkasan
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-summary"></a>

Pola ini menguraikan langkah-langkah untuk membuat pipeline integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) yang menggunakan AWS CodePipeline untuk membangun dan menguji aplikasi iOS pada perangkat nyata di AWS. Pola ini menggunakan AWS CodeCommit untuk menyimpan kode aplikasi, alat sumber terbuka Jenkins untuk membangun aplikasi iOS, dan AWS Device Farm untuk menguji aplikasi yang dibangun pada perangkat nyata. Ketiga fase ini diatur bersama dalam pipeline dengan menggunakan AWS. CodePipeline

Pola ini didasarkan pada posting [Membangun dan menguji aplikasi iOS dan iPadOS dengan AWS DevOps dan layanan seluler](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/) di blog DevOps AWS. Untuk petunjuk rinci, lihat posting blog.

## Prasyarat dan batasan
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Akun pengembang Apple
+ Membangun server (macOS)
+ [Xcode](https://developer.apple.com/xcode/) versi 11.3 (diinstal dan diatur di server build)
+ AWS Command Line Interface (AWS CLI[)](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) diinstal [dan](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) dikonfigurasi di workstation
+ Pengetahuan dasar tentang [Git](https://git-scm.com/docs)

**Batasan**
+ Server build aplikasi harus menjalankan macOS. 
+ Server build harus memiliki alamat IP publik, sehingga CodePipeline dapat menghubungkannya dari jarak jauh untuk memulai build.

## Arsitektur
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-architecture"></a>

**Tumpukan teknologi sumber**
+ Proses pembuatan aplikasi iOS lokal yang melibatkan penggunaan simulator atau pengujian manual pada perangkat fisik

**Tumpukan teknologi target**
+  CodeCommit Repositori AWS untuk menyimpan kode sumber aplikasi
+ Server Jenkins untuk membangun aplikasi menggunakan Xcode
+ Kumpulan perangkat AWS Device Farm untuk menguji aplikasi pada perangkat nyata

**Arsitektur target**

Saat pengguna melakukan perubahan ke repositori sumber, pipeline (AWS CodePipeline) mengambil kode dari repositori sumber, memulai build Jenkins, dan meneruskan kode aplikasi ke Jenkins. Setelah build, pipeline mengambil artefak build dan memulai pekerjaan AWS Device Farm untuk menguji aplikasi terhadap kumpulan perangkat.

 

![\[Pipeline CI/CD menggunakan AWS CodePipeline untuk membangun dan menguji aplikasi iOS pada perangkat nyata.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/06fbd82f-4aed-441c-818c-5f89f56af78e/images/0ae3d7b6-b40c-44ef-9580-8c8266c3d841.png)


## Alat
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-tools"></a>
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) adalah layanan pengiriman berkelanjutan yang dikelola sepenuhnya yang membantu Anda mengotomatiskan saluran pipa rilis untuk pembaruan aplikasi dan infrastruktur yang cepat dan andal. CodePipeline mengotomatiskan fase build, test, dan deploy dari proses rilis Anda setiap kali ada perubahan kode, berdasarkan model rilis yang Anda tentukan.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) adalah layanan kontrol sumber terkelola penuh yang menampung repositori berbasis Git yang aman. Ini memudahkan tim untuk berkolaborasi dalam kode dalam ekosistem yang aman dan sangat skalabel. CodeCommit menghilangkan kebutuhan untuk mengoperasikan sistem kontrol sumber Anda sendiri atau khawatir tentang penskalaan infrastrukturnya.
+ [AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) adalah layanan pengujian aplikasi yang memungkinkan Anda meningkatkan kualitas web dan aplikasi seluler dengan mengujinya di berbagai browser desktop dan perangkat seluler nyata, tanpa harus menyediakan dan mengelola infrastruktur pengujian apa pun.
+ [Jenkins](https://www.jenkins.io/) adalah server otomatisasi sumber terbuka yang memungkinkan pengembang untuk membangun, menguji, dan menyebarkan perangkat lunak mereka.

## Epik
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-epics"></a>

### Siapkan lingkungan build
<a name="set-up-the-build-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal Jenkins di server build yang menjalankan macOS. | Jenkins akan digunakan untuk membangun aplikasi, jadi Anda harus menginstalnya terlebih dahulu di server build. Untuk mendapatkan petunjuk terperinci untuk tugas ini dan selanjutnya, lihat postingan blog AWS [Membangun dan menguji aplikasi iOS dan iPadOS dengan AWS DevOps dan layanan seluler](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/) serta sumber daya lainnya di bagian [Sumber daya terkait](#build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-resources) di akhir pola ini. | DevOps | 
| Konfigurasikan Jenkins. | Ikuti petunjuk di layar untuk mengkonfigurasi Jenkins. | DevOps | 
| Instal CodePipeline plugin AWS untuk Jenkins. | Plugin ini harus diinstal pada server Jenkins agar Jenkins dapat berinteraksi dengan layanan CodePipeline AWS. | DevOps | 
| Buat proyek gaya bebas Jenkins. | Di Jenkins, buat proyek gaya bebas. Konfigurasikan proyek untuk menentukan pemicu dan opsi konfigurasi build lainnya. | DevOps | 

### Konfigurasikan AWS Device Farm
<a name="configure-aws-device-farm"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat proyek Device Farm. | Buka konsol AWS Device Farm. Buat proyek dan kumpulan perangkat untuk pengujian. Untuk instruksi, lihat posting blog. | Developer | 

### Konfigurasikan repositori sumber
<a name="configure-the-source-repository"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat CodeCommit repositori. | Buat repositori tempat kode sumber akan disimpan. | DevOps | 
| Komit kode aplikasi Anda ke repositori. | Connect ke CodeCommit repositori yang Anda buat. Dorong kode dari mesin lokal Anda ke repositori. | DevOps | 

### Konfigurasikan pipa
<a name="configure-the-pipeline"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pipeline di AWS CodePipeline. | Buka CodePipeline konsol AWS, dan buat pipeline. Pipa mengatur semua fase proses. CI/CD Untuk petunjuk, lihat postingan blog AWS [Membangun dan menguji aplikasi iOS dan iPadOS dengan AWS DevOps dan layanan seluler](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/). | DevOps | 
| Tambahkan tahap uji ke pipa. | Untuk menambahkan tahap pengujian dan mengintegrasikannya dengan AWS Device Farm, edit pipeline. | DevOps | 
| Memulai pipa. | Untuk memulai pipeline dan CI/CD prosesnya, pilih **Rilis perubahan**. | DevOps | 

### Lihat hasil tes aplikasi
<a name="view-application-test-results"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tinjau hasil tes. | Di konsol AWS Device Farm, pilih project yang Anda buat, dan tinjau hasil pengujian. Konsol akan menampilkan detail setiap tes. | Developer | 

## Sumber daya terkait
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-resources"></a>

**Step-by-step instruksi untuk pola ini**
+ [Membangun dan menguji aplikasi iOS dan iPadOS dengan AWS DevOps dan layanan seluler](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/) (postingan DevOps blog AWS)

**Konfigurasikan AWS Device Farm**
+ [Konsol AWS Device Farm](https://console.aws.amazon.com/devicefarm)

**Konfigurasikan repositori sumber**
+ [Buat repositori CodeCommit AWS](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-repository.html)
+ [Connect ke CodeCommit repositori AWS](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-connect.html)

**Konfigurasikan pipa**
+ [ CodePipeline Konsol AWS](https://console.aws.amazon.com/codesuite/codepipeline/home)

**Sumber daya tambahan**
+ [ CodePipeline Dokumentasi AWS](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [ CodeCommit Dokumentasi AWS](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
+ [Dokumentasi AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html)
+ [Dokumentasi Jenkins](https://www.jenkins.io/doc/)
+ [Instalasi Jenkins di macOS](https://www.jenkins.io/download/weekly/macos/)
+ [AWS CodePipeline Plugin untuk Jenkins](https://plugins.jenkins.io/aws-codepipeline/)
+ [Instalasi Xcode](https://developer.apple.com/xcode/)
+ [Instalasi](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) [dan konfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [Dokumentasi Git](https://git-scm.com/docs)