Cách GitLab với fastlane thu thập, ký và xuất bản ứng dụng iOS lên App Store.
Gần đây chúng tôi đã có
Ở đây chúng ta sẽ lấy
Đôi lời về cấu hình Apple Store
Chúng tôi sẽ cần ứng dụng App Store, chứng chỉ phân phối và hồ sơ cung cấp để liên kết mọi thứ lại với nhau.
Khó khăn nhất ở đây là việc thiết lập quyền ký trong App Store. Tôi hy vọng bạn có thể tự mình tìm ra điều này. Nếu bạn là người mới, tôi sẽ chỉ cho bạn hướng đi đúng, nhưng chúng ta sẽ không nói về sự phức tạp của việc quản lý chứng chỉ Apple ở đây và chúng liên tục thay đổi. Bài đăng này sẽ giúp bạn bắt đầu.
Những ứng dụng của tôi
Bạn cần một ứng dụng trong App Store Connect để có ID cấu hình .xcodebuild
. Hồ sơ và ID ứng dụng kết hợp các bản dựng mã, giá cả và tính khả dụng cũng như cấu hình TestFlight để phân phối ứng dụng thử nghiệm cho người dùng. Đừng thực hiện thử nghiệm công khai, thử nghiệm riêng tư sẽ đủ nếu bạn có một nhóm nhỏ, thiết lập dễ dàng và không cần thêm quyền từ Apple.
Hồ sơ khởi tạo
Ngoài thiết lập ứng dụng, bạn cần có các khóa phát triển và phân phối iOS được tạo trong phần Chứng chỉ, Số nhận dạng & Hồ sơ của bảng điều khiển dành cho Nhà phát triển của Apple. Tất cả các chứng chỉ này có thể được kết hợp thành một hồ sơ cung cấp.
Người dùng sẽ được xác thực cần có khả năng tạo chứng chỉ, nếu không thì các bước
lựa chọn khác
Bên cạnh phương pháp đơn giản này, còn có những cách khác để định cấu hình chứng chỉ và hồ sơ. Vì vậy, nếu bạn làm việc khác đi, bạn có thể phải thích nghi. Điều quan trọng nhất là bạn cần cấu hình .xcodebuild
, tệp này sẽ trỏ đến các tệp cần thiết và chuỗi khóa phải có sẵn trên máy tính xây dựng cho người dùng có tên mà trình chạy đang chạy. Đối với chữ ký số, chúng tôi sử dụng fastlane và nếu có vấn đề hoặc bạn muốn biết thêm, hãy xem thông tin chi tiết của họ
Trong ví dụ này tôi đang sử dụng phương pháp
Chuẩn bị GitLab và fastlane
Đang chuẩn bị Á hậu CI
Sau khi thu thập tất cả dữ liệu này, chúng tôi chuyển sang cấu hình trình chạy GitLab trên thiết bị MacOS. Thật không may, bạn chỉ có thể tạo ứng dụng iOS trên MacOS. Nhưng mọi thứ có thể thay đổi và nếu bạn mong đợi sự tiến bộ trong lĩnh vực này, hãy để mắt đến các dự án như
Việc thiết lập người chạy rất đơn giản. Theo dõi hiện tại
Ghi chú. Người chạy phải sử dụng chương trình thực thi shell
. Điều này là bắt buộc để xây dựng iOS trên macOS nhằm hoạt động trực tiếp với tư cách người dùng thay vì thông qua vùng chứa. Nếu bạn đang sử dụng shell
, việc xây dựng và thử nghiệm được thực hiện với tư cách là người dùng chạy, trực tiếp trên máy chủ xây dựng. Nó không an toàn như vùng chứa, vì vậy tốt hơn nên duyệt qua
sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
cd ~
gitlab-runner install
gitlab-runner start
Chuỗi khóa Apple phải được định cấu hình trên máy chủ này để có quyền truy cập vào các khóa mà Xcode cần xây dựng. Cách dễ nhất để kiểm tra điều này là đăng nhập với tư cách người dùng sẽ chạy bản dựng và thử xây dựng bản dựng theo cách thủ công. Nếu hệ thống yêu cầu quyền truy cập vào chuỗi khóa, hãy chọn Luôn cho phép CI hoạt động. Có thể bạn nên vào và xem một số quy trình đầu tiên để đảm bảo rằng họ không yêu cầu móc khóa nữa. Vấn đề là Apple không tạo điều kiện cho chúng ta dễ dàng sử dụng chế độ Auto, nhưng một khi bạn làm quen thì mọi thứ sẽ ổn.
khởi tạo làn đường nhanh
Để sử dụng fastlane trong một dự án, hãy chạy fastlane init
. Chỉ cần làm theo
Trong thư mục dự án của bạn, hãy chạy các lệnh sau:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane sẽ yêu cầu cấu hình cơ bản và sau đó tạo thư mục fastlane trong dự án với ba tệp:
1. fastlane/Appfile
Không có gì phức tạp ở đây. Chỉ cần đảm bảo ID Apple và ID ứng dụng của bạn là chính xác.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
xác định các bước xây dựng. Chúng tôi sử dụng rất nhiều tính năng tích hợp của fastlane nên mọi thứ ở đây cũng rõ ràng. Chúng tôi tạo một dòng nhận chứng chỉ, thực hiện lắp ráp và tải nó lên TestFlight. Bạn có thể chia quá trình này thành các nhiệm vụ khác nhau nếu cần thiết. Tất cả các hoạt động này (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) đã được đưa vào fastlane.
Hoạt động get_certificates
и get_provisioning_profile
liên quan đến cách tiếp cận ký kết
default_platform(:ios)
platform :ios do
desc "Build the application"
lane :flappybuild do
get_certificates
get_provisioning_profile
gym
upload_to_testflight
end
end
3. fastlane/Gymfile
Đây là một tệp tùy chọn, nhưng tôi đã tạo nó theo cách thủ công để thay đổi thư mục đầu ra mặc định và đặt đầu ra vào thư mục hiện tại. Điều này đơn giản hóa CI. Nếu quan tâm, hãy đọc về gym
và các thông số của nó trong
https://docs.fastlane.tools/actions/gym/
Chúng ta .gitlab-ci.yml
Vì vậy, chúng tôi có một trình chạy CI cho dự án và chúng tôi đã sẵn sàng thử nghiệm quy trình. Hãy xem chúng ta có gì trong .gitlab-ci.yml
:
stages:
- build
variables:
LC_ALL: "en_US.UTF-8"
LANG: "en_US.UTF-8"
GIT_STRATEGY: clone
build:
stage: build
script:
- bundle install
- bundle exec fastlane flappybuild
artifacts:
paths:
- ./FlappyBird.ipa
BẠN CÓ THỂ! clone
với chương trình thực thi shell
, để chúng ta có một không gian làm việc sạch sẽ cho mỗi cụm và chỉ cần gọi flappybuild
fastlane, như đã thấy ở trên. Kết quả là chúng tôi có được bản lắp ráp, chữ ký và triển khai bản lắp ráp mới nhất trong TestFlight.
Chúng tôi cũng lấy hiện vật và lưu nó cùng với tập hợp. Xin lưu ý rằng định dạng .ipa
là một tệp thực thi ARM đã ký không chạy trong trình mô phỏng. Nếu bạn muốn đầu ra cho trình mô phỏng, chỉ cần thêm mục tiêu xây dựng tạo ra nó rồi đưa nó vào đường dẫn tạo tác.
Các biến môi trường khác
Có một số biến môi trường ở đây giúp mọi thứ hoạt động.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Cần có xác thực cho fastlane để xác thực trong App Store và tải lên TestFlight. Để thực hiện việc này, hãy tạo mật khẩu cho ứng dụng sẽ được sử dụng trong CI. Chi tiết
Nếu bạn có xác thực hai yếu tố, hãy tạo một biến FASTLANE_SESSION
(có hướng dẫn).
FASTLANE_USER
и FASTLANE_PASSWORD
Đó FASTLANE_USER
и FASTLANE_PASSWORD
. Chi tiết
Kết luận
Bạn có thể thấy mọi thứ hoạt động như thế nào
Tôi hy vọng điều này hữu ích và truyền cảm hứng cho bạn làm việc với các bản dựng iOS trong dự án GitLab. Đây là một cái khác CI_BUILD_ID
(đối với các bản dựng tăng dần) thành
Một tính năng thú vị khác của fastlane là
Hãy cho chúng tôi biết trong phần nhận xét về trải nghiệm của bạn và chia sẻ ý tưởng của bạn để cải thiện việc phát triển ứng dụng GitLab cho iOS.
Nguồn: www.habr.com