3

현재 iOS 연속 통합을 위해 독립적 인 서버에서 Jenkins를 사용하고 있습니다. Jenkins는 HTML 링크를 작성, 테스트 및 생성하므로 Ad-hoc 장치 (연속 배달)에서 응용 프로그램을 다운로드 할 수 있습니다.iOS App Store가 지속적인 통합 환경에서 출시되었습니다.

앱 스토어를 만들 때마다 내가 원하는 빌드 코드를 얻고 빌드를합니다. 이것은 코드가 동일하더라도 2 개의 다른 머신이 관련되어 있기 때문에 바이너리가 동일하다는 보장이 없기 때문에 문제가된다.

일반적으로 연속 통합 릴리스에서는 이벤트가 아닌 것으로 간주합니다. 이것은 일상적인 빌드에서 저에게 효과적입니다. 그러나 지속적인 통합 환경에서 앱 스토어를 출시하는 가장 좋은 방법은 무엇입니까?

답변

1

저는 .xcodearchive 만 작성하는 Jenkins에서 새로운 직업을 추가했습니다. 이 작업은 파이프 라인에 속하며 실행될 마지막 작업입니다. 아카이브를 구축하는 데 사용되는 명령은 다음과 같습니다

xcodebuild -scheme ${JK_SCHEMA_NAME} -archivePath ${JK_OUTPUT_DIR}/${JK_ARCHIVE_NAME} clean archive "CODE_SIGN_IDENTITY=${JK_CODE_SIGN_IDENTITY}" "GCC_PREPROCESSOR_DEFINITIONS=${GCC_PREPROCESSOR_DEFINITIONS} ${JK_GCC_PREPROCESSOR_DEFINITIONS}" "PROVISIONING_PROFILE=${JK_PROVISIONING_PROFILE_UDID}" 

저장소가 완전히 자동화 (또는 적어도 인간의 상호 작용이 필요하지 않습니다) 내가 최종 바이너리 커밋에서 응용 프로그램을 제공 할 수 있는지 흐름을 만들 수 있습니다이 방법 . 버전 번호가 올바르게 설정되어 있고 상점에 업로드 된 최종 아카이브를 변경할 수있는 소스 코드 또는 컴파일 옵션이 변경되지 않았습니다.

관련 문제