- vừa được xem lúc

Bài 4 - Cài đặt Fastlane cho IOS đẩy IPA lên Firebase Distribution và Testflight

0 0 20

Người đăng: DUY TRAN

Theo Viblo Asia

Ở bài này mình sẽ hướng dẫn các bạn xơi trái táo cắn vỡ 🍎 🫢

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
  1. Apple Developer Program for Individuals (99$/ Năm) : Đành cho cá nhân.
  2. 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

  1. Cấu hình Fastlane và đẩy IPA lên Firebase Distribution
  2. 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

  1. 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

fastlane init

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, nếu thấy hay bạn hãy cho mình 1 upvote để thêm động lực chia sẽ nhiều bài viết hơn.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 1: Làm quen cô nàng Flutter

Lời mở đầu. Gần đây, Flutter nổi lên và được Google PR như một xu thế của lập trình di động vậy.

0 0 281

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 3: Lột trần cô nàng Flutter, BuildContext là gì?

Lời mở đầu. Màn làm quen cô nàng FLutter ở Phần 1 đã gieo rắc vào đầu chúng ta quá nhiều điều bí ẩn về nàng Flutter.

0 0 213

- vừa được xem lúc

Swift: Tạo custom phép toán tử (Operator) của riêng bạn!

Swift cho phép bạn tạo các toán tử có thể tùy chỉnh của riêng bạn. Điều này đặc biệt hữu ích khi bạn xử lý các loại dữ liệu của riêng mình. Operator Types in Swift. Có năm loại toán tử chính trong Swift.

0 0 56

- vừa được xem lúc

Chương 6 Protocol oriented programming.

Cuốn sách này là về lập trình hướng protocol. Khi Apple thông báo swift 2 ở WWDC 2015.

0 0 48

- vừa được xem lúc

Ví dụ về UIActivityViewController

Trên iOS, UIActivityViewController cung cấp giao diện thống nhất để người dùng chia sẻ và thực hiện các hành động trên văn bản, hình ảnh, URL và các mục khác trong ứng dụng. let string = "Hello, world!". let url = URL(string: "https://nshipster.com").

0 0 58

- vừa được xem lúc

Quản lý self và cancellable trong Combine.

. . Công việc quản lý bộ nhớ memory management thường trở nên phức tạp khi chúng ta thực hiện các tác vụ bất đồng bộ asynchronous vì chúng ta thường phải lưu giữ một số object nằm ngoài scope mà object được define trong khi vẫn phải đảm bảo được việc giải phóng object đó được thực hiện đúng quy trìn

0 0 41