Jenkins에서 Uniy iOS 프로젝트의 TestFlight 배포 (수출 규정 준수도 지원)
5094 단어 iOSJenkinsUnityTestFlight
운영 환경
Xcode9.2, Xcode10.0
Unity2017
Jenkins2.70
전제
Jenkins에서 AdHoc 빌드는 완료된 상태를 가정합니다.
AdHoc 빌드의 Job에서 TestFlight의 Job으로의 변경 사항에 대한 설명입니다.
대략적인 흐름
Jenkins에서 AdHoc 빌드는 완료된 상태를 가정합니다.
AdHoc 빌드의 Job에서 TestFlight의 Job으로의 변경 사항에 대한 설명입니다.
대략적인 흐름
exportOptionsPlist.plist
변경 Info.plist
에 수출 규정 준수에 대한 응답 작성altool
에서 유효성 검사 (필수가 아님) altool
에 업로드 1. exportOptionsPlist.plist의 방법을 app-store로 변경
xcodebuild -exportArchive
의 옵션 exportOptionsPlist
로 지정하는 plist 파일을 변경합니다.
아래와 같이 method
의 값을 ad-hoc
에서 app-store
로 합니다
<plist version="1.0">
<dict>
<key>method</key>
- <string>ad-hoc</string>
+ <string>app-store</string>
2.Info.plist에 수출 규정 준수 응답 작성
지금까지의 상태로 TestFlight에 업로드하면, 수출 컴플라이언스 정보가 없다고 하는 상태로 전달은 되지 않습니다
암호화 기능이 포함되어 있지 않으면 아니오를 선택해야합니다.
이 절차를 자동화하기 위해 Info.plist에 키 ITSAppUsesNonExemptEncryption
를 추가하고 값을 No
로 설정합니다.
참고로, Unity PostProcessBuild
에서 Info.plist
에 위의 값을 추가하는 코드는 아래와 같습니다
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget buildTarget, string path)
{
var plistPath = Path.Combine(path, "Info.plist");
var plist = new PlistDocument();
plist.ReadFromFile(plistPath);
plist.root.SetString("ITSAppUsesNonExemptEncryption", "false");
plist.WriteToFile(plistPath);
}
3.altool로 검증하기(필수는 아님)
Jenkins의 Job에서 ipa 작성 이후의 부분에 쉘 실행을 추가하고, 아래 쉘을 실행하여 검증을 실시합니다
TestFlight에 업로드할 수 있는 App Store Connect 사용자를 만들고 지정합니다.
altool 옵션
설명
-f
ipa 파일 경로
-t
유형 여기에서는 ios
-u
App Store Connect 사용자 이름
-p
App Store Connect 사용자 비밀번호
참고로, 비밀번호는 Jenkins Mask Passwords Plugin
를 사용하여 기록되지 않습니다.
(APPSTORE_CONNECT_PASS 위치)
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool \
--validate-app \
-f Unity-iPhone.ipa \
-t ios \
-u hoge@ hoge.com \
-p ${APPSTORE_CONNECT_PASS}
4.altool로 업로드
밸리데이션의 다음에 아래와 같은 쉘의 실행을 추가해 altool
로 업로드 합니다
업데이트 후 잠시 후 내부 테스트 사용자에게 TestFlight 배포가 발생합니다.
덧붙여 외부 테스트의 신청이나 외부 테스트 공개는 브라우저에서 수동으로 실시할 필요가 있습니다
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool \
--upload-app \
-f Unity-iPhone.ipa \
-t ios \
-u hoge@ hoge.com \
-p ${APPSTORE_CONNECT_PASS}
참고
Reference
이 문제에 관하여(Jenkins에서 Uniy iOS 프로젝트의 TestFlight 배포 (수출 규정 준수도 지원)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fullcorder/items/494243763acfdcdfa8f3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<plist version="1.0">
<dict>
<key>method</key>
- <string>ad-hoc</string>
+ <string>app-store</string>
지금까지의 상태로 TestFlight에 업로드하면, 수출 컴플라이언스 정보가 없다고 하는 상태로 전달은 되지 않습니다
암호화 기능이 포함되어 있지 않으면 아니오를 선택해야합니다.
이 절차를 자동화하기 위해 Info.plist에 키
ITSAppUsesNonExemptEncryption
를 추가하고 값을 No
로 설정합니다.참고로, Unity
PostProcessBuild
에서 Info.plist
에 위의 값을 추가하는 코드는 아래와 같습니다[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget buildTarget, string path)
{
var plistPath = Path.Combine(path, "Info.plist");
var plist = new PlistDocument();
plist.ReadFromFile(plistPath);
plist.root.SetString("ITSAppUsesNonExemptEncryption", "false");
plist.WriteToFile(plistPath);
}
3.altool로 검증하기(필수는 아님)
Jenkins의 Job에서 ipa 작성 이후의 부분에 쉘 실행을 추가하고, 아래 쉘을 실행하여 검증을 실시합니다
TestFlight에 업로드할 수 있는 App Store Connect 사용자를 만들고 지정합니다.
altool 옵션
설명
-f
ipa 파일 경로
-t
유형 여기에서는 ios
-u
App Store Connect 사용자 이름
-p
App Store Connect 사용자 비밀번호
참고로, 비밀번호는 Jenkins Mask Passwords Plugin
를 사용하여 기록되지 않습니다.
(APPSTORE_CONNECT_PASS 위치)
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool \
--validate-app \
-f Unity-iPhone.ipa \
-t ios \
-u hoge@ hoge.com \
-p ${APPSTORE_CONNECT_PASS}
4.altool로 업로드
밸리데이션의 다음에 아래와 같은 쉘의 실행을 추가해 altool
로 업로드 합니다
업데이트 후 잠시 후 내부 테스트 사용자에게 TestFlight 배포가 발생합니다.
덧붙여 외부 테스트의 신청이나 외부 테스트 공개는 브라우저에서 수동으로 실시할 필요가 있습니다
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool \
--upload-app \
-f Unity-iPhone.ipa \
-t ios \
-u hoge@ hoge.com \
-p ${APPSTORE_CONNECT_PASS}
참고
Reference
이 문제에 관하여(Jenkins에서 Uniy iOS 프로젝트의 TestFlight 배포 (수출 규정 준수도 지원)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fullcorder/items/494243763acfdcdfa8f3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool \
--validate-app \
-f Unity-iPhone.ipa \
-t ios \
-u hoge@ hoge.com \
-p ${APPSTORE_CONNECT_PASS}
밸리데이션의 다음에 아래와 같은 쉘의 실행을 추가해
altool
로 업로드 합니다업데이트 후 잠시 후 내부 테스트 사용자에게 TestFlight 배포가 발생합니다.
덧붙여 외부 테스트의 신청이나 외부 테스트 공개는 브라우저에서 수동으로 실시할 필요가 있습니다
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool \
--upload-app \
-f Unity-iPhone.ipa \
-t ios \
-u hoge@ hoge.com \
-p ${APPSTORE_CONNECT_PASS}
참고
Reference
이 문제에 관하여(Jenkins에서 Uniy iOS 프로젝트의 TestFlight 배포 (수출 규정 준수도 지원)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fullcorder/items/494243763acfdcdfa8f3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Jenkins에서 Uniy iOS 프로젝트의 TestFlight 배포 (수출 규정 준수도 지원)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fullcorder/items/494243763acfdcdfa8f3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)