Automatically managesigning 의 fastlane 에 게시된 iOS 애플리케이션에 뒤지지 않음
in-house가 회사 내부에 분배될 때 반드시 팀을 변경해야 한다
다른 안건에서는 수탁 개발로 인증서와 프로비전닝 프로필만 받을 수 있는 경우가 많았다.
Target를 추가하면 오류가 발생할 수 있습니다...
Scheme 복사 및 배포 시 Archive 변경...
그런 일은 하지 말고 패스트라인으로 간단하게 나눠주거나 ippa를 만들어라.
대략적인 방법
fastlane
fastrane 설치
Qita에 좋은 기사가 있어서 생략!
참조: 지금 시작
다른 팀에서 어플리케이션 배포 설정
in house용의 경우 먼저 Xcode에서 설정합니다.
Configuration 추가
InHouse 게시를 위한 Configuration을 추가합니다.
Configuration 이름은 fastlane 의 설정에 사용됩니다.
Cocorpods를 사용하는 경우 Configration용 xcconfig가 없기 때문에
다음 명령을 사용하여 생성합니다.$ pod install
xcconfig 만들기
각 Configuration에 사용할 xcconfig를 만듭니다.
Project navigator를 오른쪽 단추로 눌러 xcconfig의 그룹을 만들고 New File…를 선택합니다.
Configuration Setting File을 선택하여 원하는 이름을 지정합니다.
xcconfig 기술
제작된 각 xcconfig에서 다음과 같은 설정을 합니다.
-pod를 통한 xcconfig 읽기(Cocopods 사용 시)
구성 - Bundle Identifier
- 애플리케이션 이름 설정// CocoaPodsを使用している場合。パスは適宜置き換えてください。
#include "Pods/Target Support Files/Pods-FastlaneTestApp/Pods-FastlaneTestApp.debug.xcconfig"
// Bundle Identifier
PRODUCT_BUNDLE_IDENTIFIER = jp.cloudpack.fastlane.debug
// アプリ名
PRODUCT_NAME = fastlane debug
xcconfig 적용
반영하기 위해 Project를 설정합니다.
Project navigator에서 Project를 선택하여 각각 Configuration을 설정합니다.Cmd+B에 구축하여 경로가 정확한지 확인합니다.
Project 설정
xcconfig에 설정된 Bundle Identifier과アプリ名는 직접적으로 반영되지 않았다.
Build Setting을 통해 다음 항목$(inherited)을 설정합니다.
in house용의 경우 먼저 Xcode에서 설정합니다.
Configuration 추가
InHouse 게시를 위한 Configuration을 추가합니다.
Configuration 이름은 fastlane 의 설정에 사용됩니다.
Cocorpods를 사용하는 경우 Configration용 xcconfig가 없기 때문에
다음 명령을 사용하여 생성합니다.
$ pod install
xcconfig 만들기
각 Configuration에 사용할 xcconfig를 만듭니다.
Project navigator를 오른쪽 단추로 눌러 xcconfig의 그룹을 만들고
New File…를 선택합니다.Configuration Setting File을 선택하여 원하는 이름을 지정합니다.
xcconfig 기술
제작된 각 xcconfig에서 다음과 같은 설정을 합니다.
-pod를 통한 xcconfig 읽기(Cocopods 사용 시)
구성 - Bundle Identifier
- 애플리케이션 이름 설정
// CocoaPodsを使用している場合。パスは適宜置き換えてください。
#include "Pods/Target Support Files/Pods-FastlaneTestApp/Pods-FastlaneTestApp.debug.xcconfig"
// Bundle Identifier
PRODUCT_BUNDLE_IDENTIFIER = jp.cloudpack.fastlane.debug
// アプリ名
PRODUCT_NAME = fastlane debug
xcconfig 적용
반영하기 위해 Project를 설정합니다.
Project navigator에서 Project를 선택하여 각각 Configuration을 설정합니다.
Cmd+B에 구축하여 경로가 정확한지 확인합니다.
Project 설정
xcconfig에 설정된
Bundle Identifier과アプリ名는 직접적으로 반영되지 않았다.Build Setting을 통해 다음 항목
$(inherited)을 설정합니다.
fastlane 구성
fastrane 초기 설정
다음 명령을 실행합니다.Username는 반드시 입력해야 하며, 다른 것은 입력하지 않아도 된다.fastlane init
fastlane/Fastfile 편집
다양한 경로, Configuration, 팀 ID 설명
platform :ios do
APP_SCHEME = "FastlaneTestApp"
PLIST_PATH = "./" + APP_SCHEME + "/Info.plist"
PROJECT_NAME = APP_SCHEME + ".xcodeproj"
# Configurations
IN_HOUSE = "InHouse"
RELEASE = "Release"
# for in-house
TEAM_ID = "**********"
IN_HOUSE_TEAM_ID = "**********"
구축용 lane 추가
매번 gym로 출력 주소와 파일 이름을 설정하는 것은 매우 번거롭다
아래와 같은 privet랜을 자주 사용합니다.private_lane :build do |options|
build = get_info_plist_value(path: PLIST_PATH, key: "CFBundleVersion")
version = get_info_plist_value(path: PLIST_PATH, key: "CFBundleShortVersionString")
scheme = options[:scheme] || APP_SCHEME
config = options[:config] || IN_HOUSE
method = options[:method] || "ad-hoc"
include_bitcode = options[:include_bitcode] || false
gym(
clean: true,
configuration: config,
scheme: scheme,
output_directory: "./fastlane/Build/#{build}_#{version}",
output_name: "#{scheme}_#{config}_#{build}_#{version}",
include_bitcode: include_bitcode,
export_method: method
)
end
배포용 LINE 만들기
구축 전에 파티 ID를 전환하고 구축이 완료되면 원래의 파티로 돌아갑니다.lane :inhouse do
# 配布用のチームIDに切り替える
update_project_team(
path: PROJECT_NAME,
teamid: IN_HOUSE_TEAM_ID
)
# enterpriseを指定してビルド
build(
method: "enterprise"
)
# チームIDを戻す
update_project_team(
path: PROJECT_NAME,
teamid: TEAM_ID
)
# DeployGateやCrashlyticsなどの設定はよしなに
# deploygate(
# message: RELEASE_NOTE_DEV,
# api_token: "your api token"
# )
# ENV['CRASHLYTICS_API_TOKEN'] = "your api token"
# ENV['CRASHLYTICS_BUILD_SECRET'] = "your build secret"
# crashlytics(
# crashlytics_path: "./Pods/Crashlytics/iOS/Crashlytics.framework",
# notes: "notes",
# groups: ["group"]
# )
end
응용 프로그램 게시
랜을 실행하고 프로그램을 발표합니다.
여느 때와 마찬가지로 배포용 증명서가 필요하다.$ fastlane inhouse
release 버전ipa 파일 제작 配布用証明書과Provisioning Profile의상태만 있다.
이대로 패스트라인으로 만들어도 팀에 합류하지 않아 만들 수 없다.
저는 그냥 Automatically managesigning을 끄고 짓는 줄 알았어요.
자동화하려면 각양각색의 설정이 필요하다.
팀 ID, Provisioning Profile 이름 확인
편집기에서 받은 .mobileprovision를 열고 각각 Name의 값과 TeamIdentifier의 값을 확인합니다.<key>Name</key>
<string>fastlane test</string>
<key>TeamIdentifier</key>
<array>
<string>**********</string>
</array>
Release.xcconfig로 설정
Release.xcconfig에서 다음 내용을 보충합니다.PROVISIONING_PROFILE_SPECIFIER = fastlane test
DEVELOPMENT_TEAM = ********** // TeamIdentifierの値
BuildSettings 변경 사항
Xcode에서 Build Settings를 열고 항목을 설정합니다.
Code Signing Identity
닫힌 후 배포되는 Configuration에서 설정iOS Distribution하려고 합니다.
아래에 설명한 대로 설정하지 않으면 오류가 발생하여 잠시 빠져들게 됩니다.
Automatically manage signing
Any iOS SDK 설정
열다
iOS Developer
닫기
iOS Distribution
Development Team
닫을 때 배포할 Configuration$(inherited)만 설정합니다.
값을 설정하려면 Other...를 선택합니다.
Provisioning Profile 설정
설정된 내용을 반영하면 된다.
안에 다른 것이 있다면 설정해 주세요$(inherited).
발매용ipa 제작용lane
파티 ID 변경과 거의 동일, 빌딩 앞에서 Automaticallly managesigning 종료
구문 후에 다시 엽니다.
Google 선생님께 여쭤봤는데, 플러그인이 있습니다. fastlane-plugin-update_project_codesigning
2.20.0에는fastlane를 사용하기 때문에 사용합니다.lane :release do
# Automatic code signingをオフにする
automatic_code_signing(
path: PROJECT_NAME,
use_automatic_signing: false
)
# app-store用にビルド
build(
config: RELEASE,
method: "app-store"
)
# オンに戻す
automatic_code_signing(
path: PROJECT_NAME,
use_automatic_signing: true
)
end
만들다
ippa를 만들기 위해 lane를 실행합니다.$ fastlane release
총결산
바쁜 시기가 되면 앱 출시 시간이 낭비된다
미리 설정하면 이후(발매 전 등) 수월해진다.
이번에는 닿지 않았지만 CI와의 호흡도 좋았다.
Reference
이 문제에 관하여(Automatically managesigning 의 fastlane 에 게시된 iOS 애플리케이션에 뒤지지 않음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nokono/items/1d3d200eef7ea7d705e3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
fastlane init
platform :ios do
APP_SCHEME = "FastlaneTestApp"
PLIST_PATH = "./" + APP_SCHEME + "/Info.plist"
PROJECT_NAME = APP_SCHEME + ".xcodeproj"
# Configurations
IN_HOUSE = "InHouse"
RELEASE = "Release"
# for in-house
TEAM_ID = "**********"
IN_HOUSE_TEAM_ID = "**********"
private_lane :build do |options|
build = get_info_plist_value(path: PLIST_PATH, key: "CFBundleVersion")
version = get_info_plist_value(path: PLIST_PATH, key: "CFBundleShortVersionString")
scheme = options[:scheme] || APP_SCHEME
config = options[:config] || IN_HOUSE
method = options[:method] || "ad-hoc"
include_bitcode = options[:include_bitcode] || false
gym(
clean: true,
configuration: config,
scheme: scheme,
output_directory: "./fastlane/Build/#{build}_#{version}",
output_name: "#{scheme}_#{config}_#{build}_#{version}",
include_bitcode: include_bitcode,
export_method: method
)
end
lane :inhouse do
# 配布用のチームIDに切り替える
update_project_team(
path: PROJECT_NAME,
teamid: IN_HOUSE_TEAM_ID
)
# enterpriseを指定してビルド
build(
method: "enterprise"
)
# チームIDを戻す
update_project_team(
path: PROJECT_NAME,
teamid: TEAM_ID
)
# DeployGateやCrashlyticsなどの設定はよしなに
# deploygate(
# message: RELEASE_NOTE_DEV,
# api_token: "your api token"
# )
# ENV['CRASHLYTICS_API_TOKEN'] = "your api token"
# ENV['CRASHLYTICS_BUILD_SECRET'] = "your build secret"
# crashlytics(
# crashlytics_path: "./Pods/Crashlytics/iOS/Crashlytics.framework",
# notes: "notes",
# groups: ["group"]
# )
end
$ fastlane inhouse
配布用証明書과Provisioning Profile의상태만 있다.이대로 패스트라인으로 만들어도 팀에 합류하지 않아 만들 수 없다.
저는 그냥 Automatically managesigning을 끄고 짓는 줄 알았어요.
자동화하려면 각양각색의 설정이 필요하다.
팀 ID, Provisioning Profile 이름 확인
편집기에서 받은
.mobileprovision를 열고 각각 Name의 값과 TeamIdentifier의 값을 확인합니다.<key>Name</key>
<string>fastlane test</string>
<key>TeamIdentifier</key>
<array>
<string>**********</string>
</array>
Release.xcconfig로 설정
Release.xcconfig에서 다음 내용을 보충합니다.
PROVISIONING_PROFILE_SPECIFIER = fastlane test
DEVELOPMENT_TEAM = ********** // TeamIdentifierの値
BuildSettings 변경 사항
Xcode에서 Build Settings를 열고 항목을 설정합니다.
Code Signing Identity
닫힌 후 배포되는 Configuration에서 설정
iOS Distribution하려고 합니다.아래에 설명한 대로 설정하지 않으면 오류가 발생하여 잠시 빠져들게 됩니다.
Automatically manage signing
Any iOS SDK 설정
열다
iOS Developer
닫기
iOS Distribution
Development Team
닫을 때 배포할 Configuration
$(inherited)만 설정합니다.값을 설정하려면
Other...를 선택합니다.
Provisioning Profile 설정
설정된 내용을 반영하면 된다.
안에 다른 것이 있다면 설정해 주세요
$(inherited).
발매용ipa 제작용lane
파티 ID 변경과 거의 동일, 빌딩 앞에서 Automaticallly managesigning 종료
구문 후에 다시 엽니다.
Google 선생님께 여쭤봤는데, 플러그인이 있습니다. fastlane-plugin-update_project_codesigning
2.20.0에는fastlane를 사용하기 때문에 사용합니다.
lane :release do
# Automatic code signingをオフにする
automatic_code_signing(
path: PROJECT_NAME,
use_automatic_signing: false
)
# app-store用にビルド
build(
config: RELEASE,
method: "app-store"
)
# オンに戻す
automatic_code_signing(
path: PROJECT_NAME,
use_automatic_signing: true
)
end
만들다
ippa를 만들기 위해 lane를 실행합니다.
$ fastlane release
총결산
바쁜 시기가 되면 앱 출시 시간이 낭비된다
미리 설정하면 이후(발매 전 등) 수월해진다.
이번에는 닿지 않았지만 CI와의 호흡도 좋았다.
Reference
이 문제에 관하여(Automatically managesigning 의 fastlane 에 게시된 iOS 애플리케이션에 뒤지지 않음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nokono/items/1d3d200eef7ea7d705e3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Automatically managesigning 의 fastlane 에 게시된 iOS 애플리케이션에 뒤지지 않음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nokono/items/1d3d200eef7ea7d705e3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)