[Flutter] iOS를 위한 GiitHub Actions 자동 설계
추기
코드가 틀려서 수정했어요.
그리고 구문 이름은 github입니다.actios_나는 Sample과 타자를 치는 것을 알아차렸다.이거 프로젝트 하다가 실수한 것 같은데.
개시하다
Flutter build iOS로 Xcode archive로 다시 App Store Connect에 업로드...이런 일은 매우 번거롭다.GiitHub Actions를 사용하면 push 등을 트리거로 삼아 이 번거로운 작업을 자동화할 수 있다.그리고 공공 창고를 무료로 이용할 수 있다고 한다.이거 할 수밖에 없어요.
이미 주변 지식이 있는 사람을 위해main.일단 Yml부터.
다양한 설정을 할 수 있지만 이를 단순한 형식으로 귀결시키려 애쓴다.
main.yml
name: CI
on:
main branch
push:
branches: [ main ]
jobs:
#
# Build for iOS
#
build_iOS: # jobに名前をつけられる
name: Build for iOS # GitHubに表示されるジョブの名前
runs-on: macos-latest # ジョブを実行するマシーンの種類
steps: #一連のタスク
# チェックアウト
- name: Checks-out my repository # step に名前をつけられる なくてもいい
uses: actions/checkout@v2
# Flutter のインストール
- name: Install Flutter
run: git clone https://github.com/flutter/flutter.git # ターミナルでこれが実行されるイメージ
# PATH を通す
- name: Add path
run: echo "$(pwd)/flutter/bin" >> $GITHUB_PATH # GITHUB_PATH にどんどんぶちこめばいいらしい
# パッケージのダウンロード
- name: Download Flutter packages
run: flutter pub get
# 証明書の生成
- name: Import Provisioning Profile
run: | # 複数行の run を書きたい場合はこうする 以下、Provisioning Profilesを置くべきディレクトリにデコードしている
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
echo -n ${{ secrets.PROVISIONING_PROFILE }} | base64 -d > ~/Library/MobileDevice/Provisioning\ Profiles/distribution.mobileprovision
# 署名をする
- name: Import Code-Signing Certificates
uses: Apple-Actions/import-codesign-certs@v1 # 外部パッケージを使っている
with:
p12-file-base64: ${{ secrets.CERTIFICATES_P12 }}
p12-password: ${{ secrets.CERTIFICATE_PASSWORD }}
# ipa ファイルの出力
- name: Create ipa file
# GITHUB_RUN_NUMBER をビルドナンバーに指定することで被りがないようにしている。
run: flutter build ipa --export-options-plist=ExportOptions.plist --build-number ${GITHUB_RUN_NUMBER}
# AppStoreConnect にアップロードする
- name: Upload to AppStoreConnect
run: xcrun altool --upload-app -f "./build/ios/ipa/github_actios_sample.ipa" -u "${{ secrets.APPLE_ID }}" -p "${{ secrets.APPLE_APP_PASS }}"
이어서 나는 가능한 한 그다지 상세하지 않은 사람에게 상세하게 설명하고 싶다.먼저 프로젝트를 해보도록 하겠습니다.
시험을 보려면 빌딩 시간을 절약하고 싶어요.
그래서 플루터로 새로운 프로젝트를 만들고 GiitHub로 직접 밀어붙인다.
이번 작업은 아래의 창고입니다.
미리 필요한 물건
필요한 게 몇 개 있으니까 그런 거 준비해.
애플 ID 및 App 비밀번호
물론 먼저 개발상들을 등록해야 한다.
이곳은 역시 사랑을 끊는 곳이다.
만약 그걸 했다면 다음엔 앱용 비밀번호를 받게 될 거야.
다음 페이지는 참조가 됩니다.
App Store Connect에 업로드할 때 이 앱 비밀번호가 필요합니다.
Identifiers
묶음 ID 등으로 불리는 물건.
여기서 만들어요.다양한 설치 방법이 있지만 독특하면 문제없습니다.
서버tificates,p12 및 비밀번호
나는 이 페이지가 매우 쉽게 이해할 수 있다고 생각한다.
이번에는 Apple Distribution을 선택했습니다.
완성되면 이거 주세요.문서로 쓰다.
프로그램 검색에서 k를 입력하면 열쇠사슬 접근을 찾을 수 있기 때문에 이것을 엽니다.
이렇게 써도 돼요.
암호가 요구되기 때문에 임의의 물건을 입력하고 제어한다.
시작 내용을 모르면 이 페이지를 참고하세요.
Provisioning profile
여기서 추가 가능합니다.
이번에는 앱스토어를 선택했다.
파일 이름은 distribution입니다.모바일 프로비저닝으로
새 App 페이지
여기서 추가 가능합니다.
방금 만든 Identifiers를 선택합니다.
준비 오케이.
오랜 시간이었지만 미리 준비를 마쳤다.
다음은 Xcode 설정입니다.
Xcode를 통한 다양한 설정
우선 [프로젝트의 path]/ios/Runner입니다.xcworkspace를 엽니다.
이 화면에서 방금 설정한 Identifiers 또는 Provisioning 소개를 지정합니다.
이 정도만 하면 될 것 같아서요.
Flutter의 공식에 상세한 기록이 있다.
ExportOptions.만들다
Xcode로 파일을 한 번 저장하면 ExportOptions를 다운로드할 수 있습니다.안에 plist가 있어요.ipa 파일을 만들 때 필요하기 때문에 미리 구할 수 있습니다.
자신의 상황은 이렇다.
만약 평론한 부분을 고쳐 쓰면 아마도 직접 사용할 수 있을 것이다.
ExportOptions.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>destination</key>
<string>export</string>
<key>method</key>
<string>app-store</string> // <- 出力方式
<key>provisioningProfiles</key>
<dict>
<key>github.actions.sample</key> // <- バンドルID
<string>distribution</string> // <- Provisioning profile
</dict>
<key>signingCertificate</key>
<string>Apple Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>stripSwiftSymbols</key>
<true/>
<key>teamID</key>
<string>42XYZEWKER</string> // <- チームID
<key>uploadBitcode</key>
<false/>
<key>uploadSymbols</key>
<true/>
</dict>
</plist>
나는 이 파일을 프로젝트의 루트에 설정했다.VScode에 확장 기능 추가
GiitHub Actions를 쉽게 터치할 수 있는 확장 기능이 있으므로 설치합니다.
Secrets 를 입력하십시오.
GiitHub Actions에서는 Secrets에 비공개 정보를 미리 저장할 수 있습니다.
이번엔 다음 설정.
Repository Secrets 옆에 있는 + 아이콘을 클릭하면 계속 추가할 수 있습니다.
근데 여기 문제가 하나 있어요.
문자열은 직접 입력할 수 있지만 CERTIFCATESP12 및 PROVISIONIN프로일 어떡해?
기본 64로 변환하여 해결할 수 있습니다.
터미널 열기
command
% base64 [変換したいファイル名] | tr -d "\n" | pbcopy
, 클립보드에 저장됩니다.그리고 그것을 cmd+v로 붙이면 됩니다.
참고로tr-d "\n"에서 줄 바꿈을 삭제했습니다.
드디어 Action 워크플로우 작성
편집된 파일은 [root]/입니다.github/workflows/main.여기에 명령을 쓰면 원격 맥 환경에서 실행할 수 있습니다.
이 파일 자체는 기릿허브의 액션 탭 등에서도 제작할 수 있다.
이 지경이 되면 복사하고 붙이는 것도 움직일 것 같습니다.
이것도 하드코드가 필요 없고 기존의 창고 정보에서 끌어낼 수 있으니 다음 학습 절차로 시도해 봅시다.
가능한 한 간단하게 썼기 때문에 해설할 곳이 없다.
내가 알 수 없는 지령은 그 지령명으로 조사하면 나올 거야.
그래서 나는 두 가지를 집중해서 보충을 설명할 것이다.
flutter build ipa
모노의 글을 참고한 것이다.ippa 파일을 만드는 것은 매우 번거롭지만, 이 지령을 두드리기만 하면 실현할 수 있다.
xcrun altool --upload-app
업로드는 이것뿐입니다.나는 이 보도를 참고했다.
덤
업로드에 성공하면 테스트 항공편에서 바로 다운로드할 수 있다.
하지만 수출 규제 등이 없다는 말을 듣고 앱이 암호화를 사용하지 않았다고 답하지 않으면 TestFlight 등으로 낮출 수 없다.
info.plist
info.plist
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
추가는 OK.이렇게 하면 아무런 설정 없이 프로그램을 잃어버릴 수 있다.
나는 이 보도를 참고했다.
최후
만약 이해하지 못하는 점, 잘못된 점이 있다면, 가볍게 평론할 수 있다면 나는 매우 기쁠 것이다.
다음은 안드로이드에 쓰고 싶습니다.
참고 문장
Reference
이 문제에 관하여([Flutter] iOS를 위한 GiitHub Actions 자동 설계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/pressedkonbu/articles/254ca2fc3cd1ab텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)