Fastlane에서 ReactNative 배포 자동화 (ios)
수동 작업 자동화
ReactNative로 만든 앱을 내부 테스트(TestFlight)할 때 수동으로 MyApp로 올리는 곳을 Fastlane
를 사용하여 자동화합니다.
android판은 이쪽↓
Fastlane에서 ReactNative 배포 자동화 (android)
Fastlane 설치
ios 폴더로 이동합니다.
그리고 Gemfile
를 만듭니다. (Fastlane은 Ruby로 만든 도구입니다)
sudo gem install bundler
cd ios
bundle init
Gemfile
에 다음을 추가합니다.
Gemfilegem "fastlane"
Fastlane
설치를 위해 업데이트합니다.
bundle update
MyApp 만들기
앱을 업로드할 MyApp 만들기를 Fastlane에서 실행합니다.
bundle exec fastlane produce
질문에 대답합니다.
// Apple IDの入力
Your Apple ID Username:[email protected]
Multiple teams found on the Developer Portal, please enter the number of the team you want to use:
// Teamを選択
1) ****** "HOGEHOGE INC." (Company/Organization)
2) ****** "YourStand, inc." (Company/Organization)
1
// Bundle IDの入力
App Identifier (Bundle ID, e.g. com.krausefx.app):
com.hogehoge.app
// アプリ名
-> check the general at ios/ReactNativePlatform.xcodeproj
App Name: テスト
-> you can choose any name
1) "HOGEHOGE INC." (11111111)
2) "YourStand, inc." (2222222)
1
입력이 완료되면 Apple developer의 MyApp에 App Name에 지정한 이름의 프로젝트가 생성됩니다.
Fastlane 초기화
bundle exec fastlane init
질문에 대답합니다.
1. 📸 Automate screenshots
2. 👩✈️ Automate beta distribution to TestFlight
3. 🚀 Automate App Store distribution
4. 🛠 Manual setup - manually setup your project to automate your tasks
? 3
1. ReactNativePlatform-tvOS
2. ReactNativePlatform
? 2
[18:35:26]: Apple ID Username:
[email protected]
Multiple App Store Connect teams found, please enter the number of the team you want to use:
1) ****** "HOGEHOGE INC." (Company/Organization)
2) ****** "YourStand, inc." (Company/Organization)
1
Multiple teams found on the Developer Portal, please enter the number of the team you want to use:
1) "HOGEHOGE INC." (11111111)
2) "YourStand, inc." (2222222)
1
[18:39:54]: Would you like fastlane to manage your app's metadata? (y/n)
y
현재 위치에 fastlane
폴더가 있습니다.
rating 만들기
ios/fastlane/Deliverfile
를 작성해, 이하를 기술합니다 (앱에 의해, 숫자는 변경해 주세요)
Deliverfile{
"CARTOON_FANTASY_VIOLENCE": 0,
"REALISTIC_VIOLENCE": 0,
"PROLONGED_GRAPHIC_SADISTIC_REALISTIC_VIOLENCE": 0,
"PROFANITY_CRUDE_HUMOR": 0,
"MATURE_SUGGESTIVE": 0,
"HORROR": 0,
"MEDICAL_TREATMENT_INFO": 0,
"ALCOHOL_TOBACCO_DRUGS": 0,
"GAMBLING": 0,
"SEXUAL_CONTENT_NUDITY": 0,
"GRAPHIC_SEXUAL_CONTENT_NUDITY": 0,
"UNRESTRICTED_WEB_ACCESS": 0,
"GAMBLING_CONTESTS": 0
}
fastfile 편집
ios/fastlane/Fastfile
를 아래와 같이 편집합니다. hogehogeapp
부분은 앱 이름에 따라 달라집니다.
default_platform(:ios)
platform :ios do
// descは説明文ですので、任意の文を挿入
desc "Push a new release build to the App Store"
// releaseに関する設定
lane :release do
// build番号をfastlane実行の度に自動で上げる
increment_build_number(xcodeproj: "hogehogeapp.xcodeproj")
match(type: "appstore")
build_app(scheme: "hogehogeapp")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
// testflightに関する設定
desc "Push a new release build to TestFlight"
lane :beta do
increment_build_number(xcodeproj: "hogehogeapp.xcodeproj")
match(type: "appstore")
build_app(scheme: "hogehogeapp")
upload_to_testflight(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
end
cocoapods를 사용하는 경우
.xcworkspace
를 사용하고 있는 전제로 fastfile 을 실행하고 싶은 경우, pod install
를 실시하는 코드와 build_app 의 기술을 재기록하는 것으로 대응할 수 있습니다.
default_platform(:ios)
platform :ios do
desc "Push a new release build to the App Store"
lane :release do
# increment機能は.xcworkspaceには使用できないため削除
# increment_build_number(xcodeproj: "hogehoge.xcodeproj")
match(type: "appstore")
# pod installの実行
cocoapods
# workspaceを追加
build_app(workspace: "hogehoge.xcworkspace", scheme: "hogehoge")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
desc "Push a new release build to TestFlight"
lane :beta do
# increment機能は.xcworkspaceには使用できないため削除
# increment_build_number(xcodeproj: "hogehoge.xcodeproj")
match(type: "appstore")
# pod installの実行
cocoapods
# workspaceを追加
build_app(workspace: "hogehoge.xcworkspace", scheme: "hogehoge")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
end
또한 gemfile
에 대한 설명을 추가합니다.
Gemfilegem "fastlane"
gem 'cocoapods'
인증서 만들기
ios 배포를 fastlane에서 구현하는 경우 사전에 인증서 관련을 github에 저장하고 실행할 때마다 리포지토리를 참조하게 됩니다.
먼저 Github에 임의의 리포지토리를 private
로 만듭니다 (public
는 더 이상 사용되지 않습니다).
다음으로 다음 명령을 입력하십시오.
bundle exec fastlane match init
질문에 대답합니다.
[19:04:30]: fastlane match supports multiple storage modes, please select the one you want to use:
1. git
2. google_cloud
? 1
[19:05:12]: URL of the Git Repo:-> 作成したrepositoryのgit cloneアドレス(SSHの方)
ios/fastlane/Matchfile
가 작성되어 이전에 답변한 github 등의 정보가 기재되어 있습니다.
그런 다음 인증서를 만들고 repository에 저장합니다.
bundle exec fastlane match development
Github 비밀번호를 입력합니다.
Passphrase for Git Repo: ******
오류 발생
인증서가 제한 수를 초과하고 오류가 발생할 수 있습니다.
[!] Could not create another Development certificate, reached the maximum number of available Development certificates.
이 경우 이미 만료된 인증서를 삭제하고 용량을 열어야 하므로 nuke
명령을 실행합니다.
공식 문서 설명↓
Nuke
bundle exec fastlane match nuke development
bundle exec fastlane match nuke appstore
Xcode의 설정
general
로 이동합니다.
- Automatically manage signing
의 체크를 해제한다.
- Signing (Debug)은 match Development ...
- Signing (Release)은 match Appstore ...
tests
에 대해서도 아래와 같이 변경합니다.
Signing(Debug)
- Signing Certificate: iOS Developer
Signing (Release)
- Signing Certificate: iOS Distribution
Build settings
로 이동하여 code signing identity
를 검색합니다.
아래와 같이 편집
- Debug는 iOS Developer
- Release는 iOS Distribution
프로젝트 이름/info.plist로 이동합니다.
아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 열 추가 → ITSAppUsesNonExemptEncryption
를 추가합니다.
입력하면 아래와 같이 App Uses Non-Exempt Encryption
로 바뀝니다.
앱의 아이콘 이미지도 설정합니다.
스크린샷 삽입
ios/fastlane/screenshots
에 업로드할 스크린샷을 저장합니다.
앱을 MyApp에 배포
다음 명령 실행
bundle exec fastlane beta
종료 후 MyApp로 이동하면 앱이 testflight에 올라갑니다.
Bitrise에 통합
CI 도구 Bitrise
를 사용하면 github에 푸시 할 때 자동으로 fastlane을 실행할 수 있습니다.
자세한 내용은 아래로↓
Fastlane 명령을 Bitrise에 통합 (ios,ReactNative)
Reference
이 문제에 관하여(Fastlane에서 ReactNative 배포 자동화 (ios)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenkono/items/a3eb4d1a83d8b1d70864
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ios 폴더로 이동합니다.
그리고
Gemfile
를 만듭니다. (Fastlane은 Ruby로 만든 도구입니다)sudo gem install bundler
cd ios
bundle init
Gemfile
에 다음을 추가합니다.Gemfile
gem "fastlane"
Fastlane
설치를 위해 업데이트합니다.bundle update
MyApp 만들기
앱을 업로드할 MyApp 만들기를 Fastlane에서 실행합니다.
bundle exec fastlane produce
질문에 대답합니다.
// Apple IDの入力
Your Apple ID Username:[email protected]
Multiple teams found on the Developer Portal, please enter the number of the team you want to use:
// Teamを選択
1) ****** "HOGEHOGE INC." (Company/Organization)
2) ****** "YourStand, inc." (Company/Organization)
1
// Bundle IDの入力
App Identifier (Bundle ID, e.g. com.krausefx.app):
com.hogehoge.app
// アプリ名
-> check the general at ios/ReactNativePlatform.xcodeproj
App Name: テスト
-> you can choose any name
1) "HOGEHOGE INC." (11111111)
2) "YourStand, inc." (2222222)
1
입력이 완료되면 Apple developer의 MyApp에 App Name에 지정한 이름의 프로젝트가 생성됩니다.
Fastlane 초기화
bundle exec fastlane init
질문에 대답합니다.
1. 📸 Automate screenshots
2. 👩✈️ Automate beta distribution to TestFlight
3. 🚀 Automate App Store distribution
4. 🛠 Manual setup - manually setup your project to automate your tasks
? 3
1. ReactNativePlatform-tvOS
2. ReactNativePlatform
? 2
[18:35:26]: Apple ID Username:
[email protected]
Multiple App Store Connect teams found, please enter the number of the team you want to use:
1) ****** "HOGEHOGE INC." (Company/Organization)
2) ****** "YourStand, inc." (Company/Organization)
1
Multiple teams found on the Developer Portal, please enter the number of the team you want to use:
1) "HOGEHOGE INC." (11111111)
2) "YourStand, inc." (2222222)
1
[18:39:54]: Would you like fastlane to manage your app's metadata? (y/n)
y
현재 위치에 fastlane
폴더가 있습니다.
rating 만들기
ios/fastlane/Deliverfile
를 작성해, 이하를 기술합니다 (앱에 의해, 숫자는 변경해 주세요)
Deliverfile{
"CARTOON_FANTASY_VIOLENCE": 0,
"REALISTIC_VIOLENCE": 0,
"PROLONGED_GRAPHIC_SADISTIC_REALISTIC_VIOLENCE": 0,
"PROFANITY_CRUDE_HUMOR": 0,
"MATURE_SUGGESTIVE": 0,
"HORROR": 0,
"MEDICAL_TREATMENT_INFO": 0,
"ALCOHOL_TOBACCO_DRUGS": 0,
"GAMBLING": 0,
"SEXUAL_CONTENT_NUDITY": 0,
"GRAPHIC_SEXUAL_CONTENT_NUDITY": 0,
"UNRESTRICTED_WEB_ACCESS": 0,
"GAMBLING_CONTESTS": 0
}
fastfile 편집
ios/fastlane/Fastfile
를 아래와 같이 편집합니다. hogehogeapp
부분은 앱 이름에 따라 달라집니다.
default_platform(:ios)
platform :ios do
// descは説明文ですので、任意の文を挿入
desc "Push a new release build to the App Store"
// releaseに関する設定
lane :release do
// build番号をfastlane実行の度に自動で上げる
increment_build_number(xcodeproj: "hogehogeapp.xcodeproj")
match(type: "appstore")
build_app(scheme: "hogehogeapp")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
// testflightに関する設定
desc "Push a new release build to TestFlight"
lane :beta do
increment_build_number(xcodeproj: "hogehogeapp.xcodeproj")
match(type: "appstore")
build_app(scheme: "hogehogeapp")
upload_to_testflight(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
end
cocoapods를 사용하는 경우
.xcworkspace
를 사용하고 있는 전제로 fastfile 을 실행하고 싶은 경우, pod install
를 실시하는 코드와 build_app 의 기술을 재기록하는 것으로 대응할 수 있습니다.
default_platform(:ios)
platform :ios do
desc "Push a new release build to the App Store"
lane :release do
# increment機能は.xcworkspaceには使用できないため削除
# increment_build_number(xcodeproj: "hogehoge.xcodeproj")
match(type: "appstore")
# pod installの実行
cocoapods
# workspaceを追加
build_app(workspace: "hogehoge.xcworkspace", scheme: "hogehoge")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
desc "Push a new release build to TestFlight"
lane :beta do
# increment機能は.xcworkspaceには使用できないため削除
# increment_build_number(xcodeproj: "hogehoge.xcodeproj")
match(type: "appstore")
# pod installの実行
cocoapods
# workspaceを追加
build_app(workspace: "hogehoge.xcworkspace", scheme: "hogehoge")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
end
또한 gemfile
에 대한 설명을 추가합니다.
Gemfilegem "fastlane"
gem 'cocoapods'
인증서 만들기
ios 배포를 fastlane에서 구현하는 경우 사전에 인증서 관련을 github에 저장하고 실행할 때마다 리포지토리를 참조하게 됩니다.
먼저 Github에 임의의 리포지토리를 private
로 만듭니다 (public
는 더 이상 사용되지 않습니다).
다음으로 다음 명령을 입력하십시오.
bundle exec fastlane match init
질문에 대답합니다.
[19:04:30]: fastlane match supports multiple storage modes, please select the one you want to use:
1. git
2. google_cloud
? 1
[19:05:12]: URL of the Git Repo:-> 作成したrepositoryのgit cloneアドレス(SSHの方)
ios/fastlane/Matchfile
가 작성되어 이전에 답변한 github 등의 정보가 기재되어 있습니다.
그런 다음 인증서를 만들고 repository에 저장합니다.
bundle exec fastlane match development
Github 비밀번호를 입력합니다.
Passphrase for Git Repo: ******
오류 발생
인증서가 제한 수를 초과하고 오류가 발생할 수 있습니다.
[!] Could not create another Development certificate, reached the maximum number of available Development certificates.
이 경우 이미 만료된 인증서를 삭제하고 용량을 열어야 하므로 nuke
명령을 실행합니다.
공식 문서 설명↓
Nuke
bundle exec fastlane match nuke development
bundle exec fastlane match nuke appstore
Xcode의 설정
general
로 이동합니다.
- Automatically manage signing
의 체크를 해제한다.
- Signing (Debug)은 match Development ...
- Signing (Release)은 match Appstore ...
tests
에 대해서도 아래와 같이 변경합니다.
Signing(Debug)
- Signing Certificate: iOS Developer
Signing (Release)
- Signing Certificate: iOS Distribution
Build settings
로 이동하여 code signing identity
를 검색합니다.
아래와 같이 편집
- Debug는 iOS Developer
- Release는 iOS Distribution
프로젝트 이름/info.plist로 이동합니다.
아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 열 추가 → ITSAppUsesNonExemptEncryption
를 추가합니다.
입력하면 아래와 같이 App Uses Non-Exempt Encryption
로 바뀝니다.
앱의 아이콘 이미지도 설정합니다.
스크린샷 삽입
ios/fastlane/screenshots
에 업로드할 스크린샷을 저장합니다.
앱을 MyApp에 배포
다음 명령 실행
bundle exec fastlane beta
종료 후 MyApp로 이동하면 앱이 testflight에 올라갑니다.
Bitrise에 통합
CI 도구 Bitrise
를 사용하면 github에 푸시 할 때 자동으로 fastlane을 실행할 수 있습니다.
자세한 내용은 아래로↓
Fastlane 명령을 Bitrise에 통합 (ios,ReactNative)
Reference
이 문제에 관하여(Fastlane에서 ReactNative 배포 자동화 (ios)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenkono/items/a3eb4d1a83d8b1d70864
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
bundle exec fastlane produce
// Apple IDの入力
Your Apple ID Username:[email protected]
Multiple teams found on the Developer Portal, please enter the number of the team you want to use:
// Teamを選択
1) ****** "HOGEHOGE INC." (Company/Organization)
2) ****** "YourStand, inc." (Company/Organization)
1
// Bundle IDの入力
App Identifier (Bundle ID, e.g. com.krausefx.app):
com.hogehoge.app
// アプリ名
-> check the general at ios/ReactNativePlatform.xcodeproj
App Name: テスト
-> you can choose any name
1) "HOGEHOGE INC." (11111111)
2) "YourStand, inc." (2222222)
1
bundle exec fastlane init
질문에 대답합니다.
1. 📸 Automate screenshots
2. 👩✈️ Automate beta distribution to TestFlight
3. 🚀 Automate App Store distribution
4. 🛠 Manual setup - manually setup your project to automate your tasks
? 3
1. ReactNativePlatform-tvOS
2. ReactNativePlatform
? 2
[18:35:26]: Apple ID Username:
[email protected]
Multiple App Store Connect teams found, please enter the number of the team you want to use:
1) ****** "HOGEHOGE INC." (Company/Organization)
2) ****** "YourStand, inc." (Company/Organization)
1
Multiple teams found on the Developer Portal, please enter the number of the team you want to use:
1) "HOGEHOGE INC." (11111111)
2) "YourStand, inc." (2222222)
1
[18:39:54]: Would you like fastlane to manage your app's metadata? (y/n)
y
현재 위치에
fastlane
폴더가 있습니다.rating 만들기
ios/fastlane/Deliverfile
를 작성해, 이하를 기술합니다 (앱에 의해, 숫자는 변경해 주세요)
Deliverfile{
"CARTOON_FANTASY_VIOLENCE": 0,
"REALISTIC_VIOLENCE": 0,
"PROLONGED_GRAPHIC_SADISTIC_REALISTIC_VIOLENCE": 0,
"PROFANITY_CRUDE_HUMOR": 0,
"MATURE_SUGGESTIVE": 0,
"HORROR": 0,
"MEDICAL_TREATMENT_INFO": 0,
"ALCOHOL_TOBACCO_DRUGS": 0,
"GAMBLING": 0,
"SEXUAL_CONTENT_NUDITY": 0,
"GRAPHIC_SEXUAL_CONTENT_NUDITY": 0,
"UNRESTRICTED_WEB_ACCESS": 0,
"GAMBLING_CONTESTS": 0
}
fastfile 편집
ios/fastlane/Fastfile
를 아래와 같이 편집합니다. hogehogeapp
부분은 앱 이름에 따라 달라집니다.
default_platform(:ios)
platform :ios do
// descは説明文ですので、任意の文を挿入
desc "Push a new release build to the App Store"
// releaseに関する設定
lane :release do
// build番号をfastlane実行の度に自動で上げる
increment_build_number(xcodeproj: "hogehogeapp.xcodeproj")
match(type: "appstore")
build_app(scheme: "hogehogeapp")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
// testflightに関する設定
desc "Push a new release build to TestFlight"
lane :beta do
increment_build_number(xcodeproj: "hogehogeapp.xcodeproj")
match(type: "appstore")
build_app(scheme: "hogehogeapp")
upload_to_testflight(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
end
cocoapods를 사용하는 경우
.xcworkspace
를 사용하고 있는 전제로 fastfile 을 실행하고 싶은 경우, pod install
를 실시하는 코드와 build_app 의 기술을 재기록하는 것으로 대응할 수 있습니다.
default_platform(:ios)
platform :ios do
desc "Push a new release build to the App Store"
lane :release do
# increment機能は.xcworkspaceには使用できないため削除
# increment_build_number(xcodeproj: "hogehoge.xcodeproj")
match(type: "appstore")
# pod installの実行
cocoapods
# workspaceを追加
build_app(workspace: "hogehoge.xcworkspace", scheme: "hogehoge")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
desc "Push a new release build to TestFlight"
lane :beta do
# increment機能は.xcworkspaceには使用できないため削除
# increment_build_number(xcodeproj: "hogehoge.xcodeproj")
match(type: "appstore")
# pod installの実行
cocoapods
# workspaceを追加
build_app(workspace: "hogehoge.xcworkspace", scheme: "hogehoge")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
end
또한 gemfile
에 대한 설명을 추가합니다.
Gemfilegem "fastlane"
gem 'cocoapods'
인증서 만들기
ios 배포를 fastlane에서 구현하는 경우 사전에 인증서 관련을 github에 저장하고 실행할 때마다 리포지토리를 참조하게 됩니다.
먼저 Github에 임의의 리포지토리를 private
로 만듭니다 (public
는 더 이상 사용되지 않습니다).
다음으로 다음 명령을 입력하십시오.
bundle exec fastlane match init
질문에 대답합니다.
[19:04:30]: fastlane match supports multiple storage modes, please select the one you want to use:
1. git
2. google_cloud
? 1
[19:05:12]: URL of the Git Repo:-> 作成したrepositoryのgit cloneアドレス(SSHの方)
ios/fastlane/Matchfile
가 작성되어 이전에 답변한 github 등의 정보가 기재되어 있습니다.
그런 다음 인증서를 만들고 repository에 저장합니다.
bundle exec fastlane match development
Github 비밀번호를 입력합니다.
Passphrase for Git Repo: ******
오류 발생
인증서가 제한 수를 초과하고 오류가 발생할 수 있습니다.
[!] Could not create another Development certificate, reached the maximum number of available Development certificates.
이 경우 이미 만료된 인증서를 삭제하고 용량을 열어야 하므로 nuke
명령을 실행합니다.
공식 문서 설명↓
Nuke
bundle exec fastlane match nuke development
bundle exec fastlane match nuke appstore
Xcode의 설정
general
로 이동합니다.
- Automatically manage signing
의 체크를 해제한다.
- Signing (Debug)은 match Development ...
- Signing (Release)은 match Appstore ...
tests
에 대해서도 아래와 같이 변경합니다.
Signing(Debug)
- Signing Certificate: iOS Developer
Signing (Release)
- Signing Certificate: iOS Distribution
Build settings
로 이동하여 code signing identity
를 검색합니다.
아래와 같이 편집
- Debug는 iOS Developer
- Release는 iOS Distribution
프로젝트 이름/info.plist로 이동합니다.
아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 열 추가 → ITSAppUsesNonExemptEncryption
를 추가합니다.
입력하면 아래와 같이 App Uses Non-Exempt Encryption
로 바뀝니다.
앱의 아이콘 이미지도 설정합니다.
스크린샷 삽입
ios/fastlane/screenshots
에 업로드할 스크린샷을 저장합니다.
앱을 MyApp에 배포
다음 명령 실행
bundle exec fastlane beta
종료 후 MyApp로 이동하면 앱이 testflight에 올라갑니다.
Bitrise에 통합
CI 도구 Bitrise
를 사용하면 github에 푸시 할 때 자동으로 fastlane을 실행할 수 있습니다.
자세한 내용은 아래로↓
Fastlane 명령을 Bitrise에 통합 (ios,ReactNative)
Reference
이 문제에 관하여(Fastlane에서 ReactNative 배포 자동화 (ios)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenkono/items/a3eb4d1a83d8b1d70864
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
{
"CARTOON_FANTASY_VIOLENCE": 0,
"REALISTIC_VIOLENCE": 0,
"PROLONGED_GRAPHIC_SADISTIC_REALISTIC_VIOLENCE": 0,
"PROFANITY_CRUDE_HUMOR": 0,
"MATURE_SUGGESTIVE": 0,
"HORROR": 0,
"MEDICAL_TREATMENT_INFO": 0,
"ALCOHOL_TOBACCO_DRUGS": 0,
"GAMBLING": 0,
"SEXUAL_CONTENT_NUDITY": 0,
"GRAPHIC_SEXUAL_CONTENT_NUDITY": 0,
"UNRESTRICTED_WEB_ACCESS": 0,
"GAMBLING_CONTESTS": 0
}
ios/fastlane/Fastfile
를 아래와 같이 편집합니다. hogehogeapp
부분은 앱 이름에 따라 달라집니다.default_platform(:ios)
platform :ios do
// descは説明文ですので、任意の文を挿入
desc "Push a new release build to the App Store"
// releaseに関する設定
lane :release do
// build番号をfastlane実行の度に自動で上げる
increment_build_number(xcodeproj: "hogehogeapp.xcodeproj")
match(type: "appstore")
build_app(scheme: "hogehogeapp")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
// testflightに関する設定
desc "Push a new release build to TestFlight"
lane :beta do
increment_build_number(xcodeproj: "hogehogeapp.xcodeproj")
match(type: "appstore")
build_app(scheme: "hogehogeapp")
upload_to_testflight(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
end
cocoapods를 사용하는 경우
.xcworkspace
를 사용하고 있는 전제로 fastfile 을 실행하고 싶은 경우, pod install
를 실시하는 코드와 build_app 의 기술을 재기록하는 것으로 대응할 수 있습니다.default_platform(:ios)
platform :ios do
desc "Push a new release build to the App Store"
lane :release do
# increment機能は.xcworkspaceには使用できないため削除
# increment_build_number(xcodeproj: "hogehoge.xcodeproj")
match(type: "appstore")
# pod installの実行
cocoapods
# workspaceを追加
build_app(workspace: "hogehoge.xcworkspace", scheme: "hogehoge")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
desc "Push a new release build to TestFlight"
lane :beta do
# increment機能は.xcworkspaceには使用できないため削除
# increment_build_number(xcodeproj: "hogehoge.xcodeproj")
match(type: "appstore")
# pod installの実行
cocoapods
# workspaceを追加
build_app(workspace: "hogehoge.xcworkspace", scheme: "hogehoge")
upload_to_app_store(
skip_waiting_for_build_processing: true
)
clean_build_artifacts
end
end
또한
gemfile
에 대한 설명을 추가합니다.Gemfile
gem "fastlane"
gem 'cocoapods'
인증서 만들기
ios 배포를 fastlane에서 구현하는 경우 사전에 인증서 관련을 github에 저장하고 실행할 때마다 리포지토리를 참조하게 됩니다.
먼저 Github에 임의의 리포지토리를 private
로 만듭니다 (public
는 더 이상 사용되지 않습니다).
다음으로 다음 명령을 입력하십시오.
bundle exec fastlane match init
질문에 대답합니다.
[19:04:30]: fastlane match supports multiple storage modes, please select the one you want to use:
1. git
2. google_cloud
? 1
[19:05:12]: URL of the Git Repo:-> 作成したrepositoryのgit cloneアドレス(SSHの方)
ios/fastlane/Matchfile
가 작성되어 이전에 답변한 github 등의 정보가 기재되어 있습니다.
그런 다음 인증서를 만들고 repository에 저장합니다.
bundle exec fastlane match development
Github 비밀번호를 입력합니다.
Passphrase for Git Repo: ******
오류 발생
인증서가 제한 수를 초과하고 오류가 발생할 수 있습니다.
[!] Could not create another Development certificate, reached the maximum number of available Development certificates.
이 경우 이미 만료된 인증서를 삭제하고 용량을 열어야 하므로 nuke
명령을 실행합니다.
공식 문서 설명↓
Nuke
bundle exec fastlane match nuke development
bundle exec fastlane match nuke appstore
Xcode의 설정
general
로 이동합니다.
- Automatically manage signing
의 체크를 해제한다.
- Signing (Debug)은 match Development ...
- Signing (Release)은 match Appstore ...
tests
에 대해서도 아래와 같이 변경합니다.
Signing(Debug)
- Signing Certificate: iOS Developer
Signing (Release)
- Signing Certificate: iOS Distribution
Build settings
로 이동하여 code signing identity
를 검색합니다.
아래와 같이 편집
- Debug는 iOS Developer
- Release는 iOS Distribution
프로젝트 이름/info.plist로 이동합니다.
아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 열 추가 → ITSAppUsesNonExemptEncryption
를 추가합니다.
입력하면 아래와 같이 App Uses Non-Exempt Encryption
로 바뀝니다.
앱의 아이콘 이미지도 설정합니다.
스크린샷 삽입
ios/fastlane/screenshots
에 업로드할 스크린샷을 저장합니다.
앱을 MyApp에 배포
다음 명령 실행
bundle exec fastlane beta
종료 후 MyApp로 이동하면 앱이 testflight에 올라갑니다.
Bitrise에 통합
CI 도구 Bitrise
를 사용하면 github에 푸시 할 때 자동으로 fastlane을 실행할 수 있습니다.
자세한 내용은 아래로↓
Fastlane 명령을 Bitrise에 통합 (ios,ReactNative)
Reference
이 문제에 관하여(Fastlane에서 ReactNative 배포 자동화 (ios)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenkono/items/a3eb4d1a83d8b1d70864
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
bundle exec fastlane match init
[19:04:30]: fastlane match supports multiple storage modes, please select the one you want to use:
1. git
2. google_cloud
? 1
[19:05:12]: URL of the Git Repo:-> 作成したrepositoryのgit cloneアドレス(SSHの方)
bundle exec fastlane match development
Passphrase for Git Repo: ******
[!] Could not create another Development certificate, reached the maximum number of available Development certificates.
bundle exec fastlane match nuke development
bundle exec fastlane match nuke appstore
general
로 이동합니다.-
Automatically manage signing
의 체크를 해제한다.- Signing (Debug)은
match Development ...
- Signing (Release)은 match Appstore ...
tests
에 대해서도 아래와 같이 변경합니다.Signing(Debug)
- Signing Certificate: iOS Developer
Signing (Release)
- Signing Certificate: iOS Distribution
Build settings
로 이동하여 code signing identity
를 검색합니다.아래와 같이 편집
- Debug는 iOS Developer
- Release는 iOS Distribution
프로젝트 이름/info.plist로 이동합니다.
아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 열 추가 →
ITSAppUsesNonExemptEncryption
를 추가합니다.입력하면 아래와 같이
App Uses Non-Exempt Encryption
로 바뀝니다.앱의 아이콘 이미지도 설정합니다.
스크린샷 삽입
ios/fastlane/screenshots
에 업로드할 스크린샷을 저장합니다.
앱을 MyApp에 배포
다음 명령 실행
bundle exec fastlane beta
종료 후 MyApp로 이동하면 앱이 testflight에 올라갑니다.
Bitrise에 통합
CI 도구 Bitrise
를 사용하면 github에 푸시 할 때 자동으로 fastlane을 실행할 수 있습니다.
자세한 내용은 아래로↓
Fastlane 명령을 Bitrise에 통합 (ios,ReactNative)
Reference
이 문제에 관하여(Fastlane에서 ReactNative 배포 자동화 (ios)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenkono/items/a3eb4d1a83d8b1d70864
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다음 명령 실행
bundle exec fastlane beta
종료 후 MyApp로 이동하면 앱이 testflight에 올라갑니다.
Bitrise에 통합
CI 도구 Bitrise
를 사용하면 github에 푸시 할 때 자동으로 fastlane을 실행할 수 있습니다.
자세한 내용은 아래로↓
Fastlane 명령을 Bitrise에 통합 (ios,ReactNative)
Reference
이 문제에 관하여(Fastlane에서 ReactNative 배포 자동화 (ios)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenkono/items/a3eb4d1a83d8b1d70864
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Fastlane에서 ReactNative 배포 자동화 (ios)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kenkono/items/a3eb4d1a83d8b1d70864텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)