Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
fastlane
Prasyarat
Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu menyiapkan yang berikut:
-
Sebuah Akun AWS
-
Bucket S3 untuk menyimpan sertifikat
-
fastlane diinstal di proyek Anda - Panduan
untuk menginstal fastlane
Langkah 1: Siapkan Fastlane Match dengan S3 di mesin lokal Anda
Fastlane Match
Dalam konfigurasi contoh ini, Anda akan mengatur dan menggunakan bucket Amazon S3 untuk penyimpanan.
-
Inisialisasi kecocokan dalam proyek Anda:
fastlane match init
-
Saat diminta, pilih S3 sebagai mode penyimpanan.
-
Perbarui `Matchfile` Anda untuk menggunakan S3:
storage_mode("s3") s3_bucket("your-s3-bucket-name") s3_region("your-aws-region") type("appstore") # The default type, can be: appstore, adhoc, enterprise or development
Langkah 2: Siapkan Fastfile Anda
Buat atau perbarui `Fastfile` Anda dengan jalur berikut.
Pada CodeBuild, Fastlane Match harus dijalankan setiap kali Anda membangun dan menandatangani aplikasi Anda. Cara termudah untuk melakukannya adalah dengan menambahkan match
tindakan ke jalur yang membangun aplikasi Anda.
default_platform(:ios)
platform :ios do
before_all do
setup_ci
end
desc "Build and sign the app"
lane :build do
match(type: "appstore", readonly: true)
gym(
scheme: "YourScheme",
export_method: "app-store"
)
end
end
catatan
Pastikan untuk menambahkan setup_ci
ke before_all
bagian Fastfile
agar tindakan pencocokan berfungsi dengan benar. Ini memastikan bahwa gantungan kunci Fastlane sementara dengan izin yang sesuai digunakan. Tanpa menggunakan ini, Anda mungkin melihat kegagalan build atau hasil yang tidak konsisten.
Langkah 3: Jalankan fastlane match
perintah untuk menghasilkan sertifikat dan profil masing-masing
Perintah fastlane match untuk tipe yang diberikan (yaitu, development, appstore, adhoc, enterprise) akan menghasilkan sertifikat dan profil jika tidak tersedia di remote store. Sertifikat dan profil akan disimpan di S3 oleh fastlane.
bundle exec fastlane match appstore
Eksekusi perintah akan interaktif dan fastlane akan meminta untuk mengatur frasa pass untuk mendekripsi sertifikat.
Langkah 4: Buat file aplikasi untuk proyek Anda
Buat atau tambahkan file aplikasi yang sesuai untuk proyek Anda.
-
Buat atau tambahkan Gymfile
, Appfile, Snapfile , Deliverfile berdasarkan persyaratan pembuatan proyek Anda. -
Komit perubahan ke repositori jarak jauh Anda
Langkah 5: Buat variabel lingkungan di Secrets Manager
Buat dua rahasia untuk menyimpan cookie sesi fastlane dan frasa pass yang cocok. Untuk informasi selengkapnya tentang membuat rahasia di Secrets Manager, lihat Membuat AWS Secrets Manager rahasia.
-
Akses cookie sesi fastlane Anda sebagai berikut.
-
Kunci rahasia -
FASTLANE_SESSION
-
Nilai rahasia - cookie sesi yang dihasilkan dari menjalankan perintah berikut di mesin lokal Anda.
catatan
Nilai ini tersedia setelah otentikasi dalam file lokal:
~/.fastlane/spaceship/my_appleid_username/cookie
.fastlane spaceauth -u <apple account>
-
-
Frasa pass Fastlane Match - Untuk mengaktifkan Fastlane Match untuk mendekripsi sertifikat dan profil yang disimpan dalam bucket S3, Anda perlu menambahkan frasa sandi enkripsi yang Anda konfigurasikan dalam langkah penyiapan Match ke variabel lingkungan proyek. CodeBuild
-
Kunci rahasia -
MATCH_PASSWORD
-
Nilai rahasia -
<match passphrase to decrypt certificates>
. Frasa sandi diatur saat menghasilkan sertifikat di Langkah 3.
-
catatan
Saat membuat rahasia di atas di Secrets Manager, ingatlah untuk memberikan nama rahasia dengan awalan berikut: /CodeBuild/
Langkah 6: Buat armada komputasi
Buat armada komputasi untuk proyek Anda.
-
Di konsol, buka CodeBuild dan buat armada komputasi baru.
-
Pilih “macOS” sebagai sistem operasi dan pilih jenis dan gambar komputasi yang sesuai.
Langkah 7: Buat proyek di CodeBuild
Buat proyek Anda di CodeBuild.
Buka AWS CodeBuild konsol di https://console.aws.amazon.com/codesuite/codebuild/home
. -
Buat proyek build. Untuk informasi selengkapnya, lihat Buat proyek build (konsol) dan Jalankan build (konsol).
-
Siapkan penyedia sumber Anda (seperti GitHub, CodeCommit). Ini adalah repositori sumber proyek iOS dan bukan repositori sertifikat.
-
Di Lingkungan:
-
Pilih Kapasitas Cadangan.
-
Untuk Armada, pilih armada yang dibuat di atas.
-
Berikan nama peran layanan yang CodeBuild akan dibuat untuk Anda.
-
Berikan variabel lingkungan di bawah ini.
-
Nama:
MATCH_PASSWORD
, Nilai:<secrets arn>
, Jenis: Secrets Manager (Rahasia ARN dibuat pada langkah 5 untuk MATCH_PASSWORD) -
Nama:
FASTLANE_SESSION
, Nilai:<secrets arn>
, Jenis: Secrets Manager (Rahasia ARN dibuat di Langkah 5 untuk FASTLANE_SESSION)
-
-
-
Di Buildspec, tambahkan yang berikut ini:
version: 0.2 phases: install: commands: - gem install bundler - bundle install build: commands: - echo "Building and signing the app..." - bundle exec fastlane build post_build: commands: - echo "Build completed on date" artifacts: files: - '*/.ipa' name: app-$(date +%Y-%m-%d)
Langkah 8: Konfigurasikan peran IAM
Setelah proyek dibuat, pastikan peran layanan CodeBuild proyek Anda memiliki izin untuk mengakses bucket S3 yang berisi sertifikat. Tambahkan kebijakan berikut ke peran:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::your-s3-bucket-name"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::your-s3-bucket-name/*"
}
]
}
Langkah 9: Jalankan build
Jalankan build. Anda dapat meninjau status build dan log in CodeBuild.
Setelah pekerjaan selesai, Anda akan dapat melihat log pekerjaan.
Pemecahan Masalah
-
Jika Anda mengalami masalah dengan pengambilan sertifikat, pastikan izin IAM Anda diatur dengan benar untuk akses S3.
-
Jika Anda mengalami masalah dengan dekripsi sertifikat, pastikan Anda menetapkan frasa sandi yang benar dalam variabel lingkungan MATCH_PASSWORD.
-
Untuk masalah penandatanganan kode, verifikasi bahwa akun Pengembang Apple Anda memiliki sertifikat dan profil yang diperlukan, dan bahwa pengenal bundel dalam proyek Xcode Anda cocok dengan yang ada di profil penyediaan Anda.
Pertimbangan keamanan
Berikut ini adalah pertimbangan keamanan untuk tutorial ini.
-
Pastikan bucket S3 Anda memiliki pengaturan keamanan yang sesuai, termasuk enkripsi saat istirahat. Secara khusus, pastikan bucket tidak memiliki akses publik dan membatasi akses hanya CodeBuild dan sistem yang perlu memiliki akses.
-
Pertimbangkan AWS Secrets Manager untuk menggunakan untuk menyimpan informasi sensitif seperti MATCH_PASSWORD dan FASTLANE_SESSION.
Contoh ini menyediakan penyiapan untuk penandatanganan kode iOS dengan Fastlane dalam CodeBuild menggunakan Amazon S3 untuk penyimpanan sertifikat. Anda mungkin perlu menyesuaikan beberapa langkah berdasarkan persyaratan dan CodeBuild lingkungan proyek spesifik Anda. Pendekatan ini memanfaatkan AWS layanan untuk meningkatkan keamanan dan integrasi dalam AWS ekosistem.