Helpex - Trao đổi & giúp đỡ Đăng nhập

Bitbucket + Bitrise: Định cấu hình tích hợp liên tục cho ứng dụng iOS

Khi các ứng dụng iOS bắt đầu phát triển, tại một thời điểm nào đó, điều cần thiết là phải có một vòng phản hồi phát triển-phát hành-kiểm tra nhanh chóng. Bạn có thể tạo vòng lặp này bằng cách thực hiện mọi thứ theo cách thủ công, nhưng nó có thể nhanh hơn và nâng cao hơn nhiều nếu bạn sử dụng các công cụ Tích hợp liên tục (CI).

Với công cụ CI, bạn có thể xây dựng lịch sử các bản phát hành và nhanh chóng xem bản dựng nào chứa những gì. Bạn có thể tự động chạy thử nghiệm cho mọi bản dựng và bắt một số lỗi không thể tránh khỏi. Bạn có thể có sự nhất quán trong ghi chú phát hành của mình. Và bạn có thể sắp xếp hợp lý các chu kỳ phát hành của mình, điều này sẽ tự động hóa danh sách kiểm tra của bạn.

Nghe có vẻ thú vị? Hãy thử tạo vòng phản hồi này bằng cách sử dụng Bitbucket Webhooks, Bitrise và fastlane.

Luồng triển khai

Quy trình chúng tôi sẽ sử dụng cho Tích hợp liên tục của chúng tôi sẽ trông giống như sau:

  1. Tạo và hợp nhất một Yêu cầu kéo trong Bitbucket.
  2. Bitbucket thực hiện một yêu cầu HTTP “Webhook” tới Bitrise.
  3. Bitrise bắt đầu xây dựng quy trình và khởi chạy fastlane.
  4. fastlane xây dựng ứng dụng và gửi đến App Store Connect.
  5. App Store Connect xử lý bản dựng và nó có sẵn trong TestFlight.

Bitbucket Webhooks và Mô hình phân nhánh Git

Mỗi lần triển khai bắt đầu từ việc chúng tôi tạo một Yêu cầu kéo.

Giả sử nhóm của bạn đang sử dụng nhánh git chính cho mã ở trạng thái có thể tải xuống. Nó cũng tạo ra các bản phát hành mới bằng cách hợp nhất nhánh chính này với nhánh phát hành.

Phần sau đây mô tả cách tạo Webhook theo cách thủ công. Tuy nhiên, nếu bạn sử dụng Bitrise, nó có thể tự động tạo một Webhook cho bạn, vì vậy, hãy bỏ qua phần Bitrise.

Cấu hình Webhook thủ công

Tiếp theo, hãy cấu hình Bitbucket Webhooks để bất cứ khi nào ai đó đẩy đến nhánh phát hành hoặc hợp nhất Yêu cầu kéo vào nhánh phát hành, Webhook sẽ được kích hoạt.

Để làm điều đó, hãy truy cập kho lưu trữ Bitbucket của bạn và nhấp vào “Cài đặt” trong menu bên. Sau đó nhấp vào “Webhooks” trong phần “Workflow” và sau đó nhấp vào “Thêm webhook”.

Điền vào Tiêu đề, URL (xem bên dưới), đặt Trạng thái thành Hoạt động và chọn “Chọn từ danh sách đầy đủ các trình kích hoạt” cho Trình kích hoạt. Các trình kích hoạt chúng tôi sẽ sử dụng là:

  1. Kho: Đẩy
  2. Yêu cầu kéo: Đã tạo, đã cập nhật

Để lấy URL cho Webhook của chúng tôi:

  1. Đi đến Bitrise, tạo một ứng dụng mới.
  2. Mở tab Trang tổng quan -> Ứng dụng của bạn -> Mã.
  3. Cuộn đến phần Webhook đến và nhấp vào Thiết lập theo cách thủ công.
  4. Chọn “Bitbucket Webhooks” và sao chép URL Webhook
Bitbucket + Bitrise: Định cấu hình tích hợp liên tục cho ứng dụng iOS

Cấu hình Bitrise và Webhook tự động

Bitrise là một nền tảng để tích hợp liên tục. Bạn có thể định cấu hình các “quy trình công việc” triển khai khác nhau trong đó và để các máy chủ Bitrise xây dựng và xuất bản ứng dụng của bạn. Dưới đây là các bước để tạo quy trình triển khai mới cho thiết lập CI của chúng tôi.


  1. Trước tiên, hãy đăng ký Bitrise, đi tới Trang tổng quan và nhấp vào “Thêm ứng dụng mới”.
  2. Chọn “Riêng tư” nếu bạn muốn cấu hình và nhật ký của mình ở chế độ riêng tư.
  3. Chọn Bitbucket và kết nối nó với tài khoản của bạn.
  4. Nhấp vào “Tự động thêm khóa SSH” hoặc định cấu hình quyền truy cập SSH theo cách thủ công.
  5. Nhập `release` làm tên chi nhánh trong bước“ Chọn chi nhánh ”.
  6. Trong cấu hình xây dựng Dự án, chọn “fastlane” và kiểm tra xem làn đường Fastlane có được đặt thành `ios release hay không. '
  7. Chọn ngăn xếp mà bạn thường sử dụng để xây dựng ứng dụng của mình hoặc chỉ Xcode / macOS mới nhất có sẵn và nhấp vào Xác nhận.
  8. Ở bước cuối cùng, “Thiết lập Webhook”, hãy nhấp vào “Đăng ký Webhook cho tôi”.

Bước cuối cùng tạo Webhook trong Bitbucket, vì vậy bạn không phải làm bất cứ điều gì theo cách thủ công. Bạn có thể truy cập kho lưu trữ Bitbucket và kiểm tra cấu hình Webhook trong Cài đặt -> Webhooks.

Trong thiết lập của chúng tôi, chúng tôi sẽ sử dụng fastlane để xây dựng và xuất bản ứng dụng lên App Store Connect.

Cấu hình Fastlane

Fastlane là một bộ công cụ để tự động hóa các quy trình phát triển và phát hành.

Làm theo hướng dẫn này để cài đặt fastlane: Setup - fastlane docs .

Tóm lại, bạn cần cài đặt các công cụ phát triển Xcode:

xcode-select --install

và sau đó cài đặt fastlane qua RubyGems

sudo gem install fastlane -NV

hoặc qua bia:

brew cask install fastlane

Sau đó, mở thư mục làm việc của ứng dụng của bạn trong Terminal và khởi chạy fastlane.

cd /path/to/your/app
fastlane init

Chọn “3. Tự động phân phối App Store ”

Sau đó làm theo các yêu cầu cấu hình. Fastlane có thể tạo và định cấu hình Id ứng dụng mới cho bạn và tạo “làn” triển khai mẫu. Làn đường chỉ là một tập hợp các bước, cần thiết để hoàn thành một số tình huống.

Sau khi cấu hình xong, hãy mở Fastfile đã được tạo và cấu hình tập lệnh triển khai đầu tiên. Fastlane có một bộ công cụ lớn để tự động hóa các quy trình khác nhau như ký mã, tải lên ảnh chụp màn hình, chạy thử nghiệm, v.v. Tuy nhiên, chúng tôi sẽ bắt đầu với một thiết lập đơn giản:

default_platform(:ios)

platform :ios do
  desc "Push a new release build to the App Store"
  lane :release do
    build_app(scheme: "CITest")
    upload_to_app_store(force: true, skip_metadata: true, skip_screenshots: true)
  end
end

Làn đường "thả" sẽ:

  1. thực hiện xây dựng dự án của bạn - build_app(scheme: “CITest”).
  2. Tải tệp ipa kết quả lên App Store Connect - upload_to_app_store. Trong hướng dẫn này, chúng tôi đang bỏ qua tải lên siêu dữ liệu fastlane.

Bạn có thể kiểm tra thiết lập của mình bằng cách mở thư mục dự án của bạn trong Terminal và chạy bản phát hành fastlane:

cd /path/to/your/app/directory
fastlane release

Ký mã

Nếu bạn gặp sự cố với việc ký mã, hãy bắt đầu tại đây: Khắc phục sự cố - tài liệu fastlane . Bạn có thể sử dụng đối sánh fastlane để quản lý việc ký mã, nhưng hãy cẩn thận: nếu bạn đã tạo Chứng chỉ và Hồ sơ cấp phép, đối sánh có thể phá vỡ mọi thứ. Tuy nhiên, nếu đó là một thiết lập hoàn toàn mới hoặc bạn không quan tâm nhiều đến các cấu hình hiện có, thì quá trình khớp sẽ tăng tốc đáng kể.

Chúng tôi sẽ sử dụng đối sánh fastlane trong ví dụ của chúng tôi:

cd /path/to/your/app/directory
fastlane match development
fastlane match adhoc
fastlane match appstore

Sau đó, mở Xcode, tắt Tự động ký mã và chọn cấu hình cấp phép phù hợp đã được tạo.

Sau đó, chúng ta có thể thêm khớp vào Fastfile của mình:

default_platform(:ios)

platform :ios do
  desc "Push a new release build to the App Store"
  lane :release do
      match(type: "appstore", readonly: true)
    build_app(scheme: "CITest")
    upload_to_app_store(force: true, skip_metadata: true, skip_screenshots: true)
  end
end

Hoàn thành thiết lập Bitrise

Bitbucket + Bitrise: Định cấu hình tích hợp liên tục cho ứng dụng iOS

Bitrise đang xây dựng dự án trên các máy chủ không có bất kỳ mật khẩu và thông tin đăng nhập nào của bạn cần thiết để ký mã và tải ứng dụng của bạn lên App Store Connect. Do đó, chúng tôi sẽ phải chia sẻ một số trong số đó; chính xác là hai điều này:

  1. Đăng nhập / mật khẩu cho người dùng App Store Connect.
  2. Mật khẩu để giải mã kho lưu trữ đối sánh của bạn (nếu bạn sử dụng đối sánh).

Người dùng App Store Connect không nhất thiết phải là người bạn sử dụng để kiểm soát các ứng dụng của mình. Bạn có thể tạo người dùng mới trong App Store Connect, người dùng này chỉ có quyền truy cập vào ứng dụng bạn tự động hóa và có ít nhất vai trò Nhà phát triển.

Sau khi bạn thiết lập người dùng App Store Connect mới, hãy chuyển đến Bitrise và mở tab Workflow Editor, sau đó chọn Secrets. Thêm hai bí mật mới:

ITUNES_CONNECT_USERITUNES_CONNECT_PASSWORDvới thông tin đăng nhập trên App Store cho người dùng mới này. Thêm vào đó, hãy đặt cùng một mật khẩu vào FASTLANE_PASSWORDbí mật.

Nếu bạn sử dụng đối sánh, hãy thêm một bí mật nữa được gọi MATCH_PASSWORDbằng mật khẩu bạn đã sử dụng để mã hóa kho lưu trữ đối sánh.

Phần kết luận

Đó phải là nó. Hãy thử tạo một Yêu cầu kéo mới và hợp nhất nó và xem liệu Bitrise có kích hoạt bản dựng mới hay không. Nếu mọi thứ suôn sẻ, bạn sẽ thấy bản dựng mới trong TestFlight và có thể chọn nó cho phiên bản ứng dụng iOS mới của mình.

Bitbucket + Bitrise: Định cấu hình tích hợp liên tục cho ứng dụng iOS

Còn nhiều điều bạn có thể làm với các triển khai tự động, chẳng hạn như:

  1. Kiểm tra bằng cách quét fastlane.
  2. Tăng số bản dựng tự động.
  3. dSYM tải lên Crashlytics_Raygun_etc.

Tuy nhiên, hãy bắt đầu với những thứ đơn giản trước. Tôi hy vọng hướng dẫn này sẽ giúp bạn!

4 hữu ích 0 bình luận 9.3k xem chia sẻ

Có thể bạn quan tâm

loading