Bài 4 - Cài đặt Fastlane cho IOS đẩy IPA lên Firebase Distribution và Testflight
04/02/2023 - 6 phút
Tóm tắt
Các khái niệm
- Tệp .IPA là tệp lưu trữ ứng dụng iOS và iPados lưu trữ ứng dụng iOS/iPados. Mỗi tệp .IPA bao gồm một nhị phân và chỉ có thể được cài đặt trên thiết bị iOS, iPados hoặc MacOS dựa trên ARM. Các tệp có phần mở rộng .IPA có thể không bị nén bằng cách thay đổi tiện ích mở rộng thành .zip và giải nén. Hầu hết các tệp .ipa không thể được cài đặt trên trình giả lập iPhone vì chúng không chứa nhị phân cho kiến x86, ARM của điện thoại và máy tính bảng di động. Để chạy các ứng dụng trên trình giả lập, các tệp dự án gốc có thể được mở bằng cách sử dụng Xcode SDK. Tuy nhiên, một số tệp .ipa có thể được mở trên trình giả lập bằng cách trích xuất và sao chép qua tệp .APP được tìm thấy trong thư mục tải trọng. Một số ứng dụng đơn giản có thể chạy trên trình giả lập thông qua phương pháp này.
- Tài khoản Apple Developer là một trong các quy trình quan trọng nhất trong phát triển ứng dụng IOS, khi run, debug, xuất ra tiệp cà đặt .ipa hay upload app lên Testflight. có 2 loại tài khoản
- Apple Developer Program for Individuals (99$/ Năm) : Đành cho cá nhân.
- Membership Program for Organizations (299$/ Năm) : Dành cho tổ chức, công ty.
- Apple Distribution Certificates là giấy chứng nhận định danh tài khoản có quyền hạn để tải app lên appstore của sản phẩm hay không, ở tài khoản 99$ chỉ tạo được max là 3 certificates.
- Apple Development Certificates là giấy chứng nhận chỉ được sử dụng cho mục đích phát triển. Hổ trợ tất cả thiết bị, và chỉ tạo được tối da 12 certificates cho tài khoản $99.
Hướng dẫn
- Cấu hình Fastlane và đẩy IPA lên Firebase Distribution
- Cấu hình Fastlane và đẩy Testflight
Cấu hình Fastlane và đẩy IPA lên Firebase Distribution
Tạo App Name cho project android bằng cách nhấp vào icon Android trên trang dashboard của Firebase
- Nhập Apple bundle ID và nhấp vào “Register app”
Tải file GoogleService-Info.plist về và nhấp vào “Next
Sau khi tải về chúng ta mở xcode bằng lệnh
open ios/ReactNativeDevOps.xcworkspace
Tiếp theo chúng ta kéo tiệp đã tải vào xcode
Tiếp theo chọn theo hình và chọn OK
Tiếp chục chọn Next
Tiếp chục chọn Next
Tiếp tục chọn ” Continue to console “
Sau khi đăng ký thành công thì mình sẽ có phần ios trên trang dashboard
Như vậy mình đã đăng ký thành công ios trên Firebase
Tiếp theo thì sẽ kích hoạt Firebase Distribution
Ta chọn Firebase Distribution ở menu bên phải, sau đó chon IOS
Tiếp theo chọn Get started
Như vậy ta đã kích hoạt thành công Firebase Distribution
Build .IPA
Bạn cần một Account Apple Developer để thực hiện bước này
- Tạo Certificates Distribution:
Ta truy cập vào đường dẫn để thực hiện tạo: https://developer.apple.com/account sau đó chọn Certificates
Ta mở Keychain Access lên và chọn Certificate Assistant -> Request a Certificate From a Certificate Authority..
Tiếp theo ta nhập email và chọn Saved to disk
Chọn vào icon tạo mới
Tiếp theo chọn Apple Distribution và nhấp vào Continue
Chọn tiệp CertificateSigningRequest.certSigningRequest vừa tạo ở trên
Nhấp vào tiếp tục và tải tiệp đã tạo về
Nhấp double click vào tiệp mới tải về và import vào keychain acceses và kiểm tra xem tiệp đã được import chưa
Như vậy tiệp đã được import rồi, tiếp tục ta tạo Provisioning Profile Ad Hoc
Ta chọn menu bên trái Profiles
Tiếp tục ta chọn Continue
Tiếp tục ta chọn Continue
Ta chọn Certificate vừa tạo và nhấp vào Continue
Chọn thiết bị được sử dụng, ở phần này mình build Ad Hoc nên cần add thêm thiết bị vào bản build
Tiếp chọn đặt tên cho tiệp và chọn Generate sau đó tải tiệp đó về
Nhấp double click vào tiệp mới tải về và import vào keychain acceses
Tiếp theo ta dùng lệnh fastlane init để add bộ build của ios
fastlane init
Tiếp theo ta chọn số 4
Tiếp theo ta add thên plugin firebase_app_distribution
fastlane add_plugin firebase_app_distribution
Tiếp tục cập nhật file ios->fastlane->Fastfile
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
ENV["FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT"] = "180"
ENV["FASTLANE_XCODE_LIST_TIMEOUT"] = "180"
default_platform(:ios)
platform :ios do
desc "Push a new beta build to firebase"
lane :firebase do |options|
clear_derived_data
clean_build_artifacts
build_app(
export_options: {
method: "ad-hoc",
provisioningProfiles: {
"com.reactnativedevops" => "Provisioning Profile react native depops"
}
}
)
puts "+---------------------------------+".bold.blue
puts "|-- FIREBASE_CLI_TOKEN: #{ENV['FIREBASE_CLI_TOKEN']} 🚀 --|".bold.blue
puts "|-- FIREBASE_APP_ID: #{ENV['FIREBASE_APP_ID']} 🚀 --|".bold.blue
puts "+---------------------------------+".bold.blue
firebase_app_distribution(
app: "1:320882145170:ios:56b45da6b925693e65b34b",
firebase_cli_token: "1//0gP2yENNqCT1oCgYIARAAGBASNwF-L9IrqQI9gih5h73FSmaozzyn0HSQXxS7Vyyav2h4zEk4ClMbgmz6CwbEShz_qJVMmTxiGas"
)
end
end
firebase_app_distribution phần app vs firebase_cli_token các bạn xem ở bài trước nhé, mình có hướng dẫn ở bài trước rồi, tiếp tục ta dùng lệnh fastlane firebase để chạy lệnh
fastlane firebase
Như vậy bạn đã build thành công và đẩy lên firebase, tiếp tục mình login vào firebase console để xem tiệp đã được đẩy lên chưa
Như vậy mình đã build thành công, và upload bản build version 1 lên Firebase Distribution
Cấu hình Fastlane và đẩy Testflight
Bước 1: Tạo identifiers
Tiếp tục chọn Continue
Chọn App và nhấp vào Continue
tiếp tục nhập Description và **Bundle ID **
Như vậy ta đã tạo thành công identifiers cho app có packages name là com.reactnativedevops
Tiếp tục ta vào phần trang chủ appconnect tạo New App
Như vậy ta vùa thành công tạo New App có app name là React Native Devops
Tiếp tục cập nhật file ios->fastlane->Fastfile thêm đoạn config build mới vào
desc "Push a new beta build to TestFlight"
lane :beta do |options|
clear_derived_data
clean_build_artifacts
build_app(
scheme: "Release",
export_options: {
method: "app-store",
provisioningProfiles: {
"com.reactnativedevops" => "Provisioningdevopsstore"
}
}
)
upload_to_testflight(
notify_external_testers:true,
skip_waiting_for_build_processing:true
)
end
Tiếp tục cập nhật file ios->fastlane->Appfile thêm đoạn config build mới vào
# app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
# apple_id("[[APPLE_ID]]") # Your Apple Developer Portal username
app_identifier("com.reactnativedevops") # The bundle identifier of your app
apple_id("tdduy.dev@gmail.com") # Your Apple email address
itc_team_id("") # App Store Connect Team ID
team_id("") # Developer Portal Team ID
# For more information about the Appfile, see:
# https://docs.fastlane.tools/advanced/#appfile
sau khi update ta dùng lệnh fastlane beta -verbose để build
fastlane beta -verbose
Sau khi build thành công thì app của mình đã lên được testflight
Như vậy mình đã chia sẽ có các bạn cách build cho ios thông qua fastlane, cảm ơn các bạn đã xem qua bài viết của mình.