일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- github
- rxswift
- Xcode
- window
- Swift
- 웹뷰
- Code
- Apple
- error
- Git
- Archive
- MacOS
- SwiftUI
- stack
- Session
- Notification
- Realm
- view
- UIButton
- Python
- Firebase
- darkmode
- FLUTTER
- appstore
- 개발자
- iOS16
- IOS
- 한글
- JPA
- mac
- Today
- Total
EEYatHo 앱 깎는 이야기
Git ) GithubAction2 - EEYatHo iOS 본문
사내 앱 GithubAction 적용하다가 알아낸 것들 적습니다.
생략 )
1. CI / CD 할 때 인증이 필요한 구간은 2가지다.
2. 개발 주체와 배포 주체가 같느냐 다르냐에 따라, 인증에 요구되는게 달라진다.
3. auto signing을 하려면 애플 로그인이 필요하다. ( 사내 서버면 쉽지만, 깃헙액션에서는 넘나 어려운 짓이다 ㅠ )
1. 일단 CI / CD 할 때 인증이 필요한 구간은 2개임.
archive 할 때, exportArchive (ipa생성) 할 때.
1) archive 할 때의 특징
깃헙 서버에서 archive를 할 때는, xcode에서 설정한 build setting을 따라감.
즉, xcode의 Signing & Capabilities에 설정 한 것에 따라 Auto sigining을 하던, 프로파일을 찾던 함.
특이한건, release 설정인데,
- 개발 주체와 배포 주체가 같은 개인 앱의 경우, dist인증서를 요구함. -> ad-hoc, app-store 인증서를 박아야함.
- 개발은 나, 배포는 회사인 경우, release 설정인데 불구하고 dev인증서를 요구함 ㅡㅡ -> dev 인증서를 박아야함.
( 대충 생각한 이유는, 배포 주체가 회사이며, 그 아래에 개발자로 등록되었기 때문에, 개발 인증을 해서 회사 배포로 연결되는 뭐 그런 구조인건가 암튼 현상이 이럼 ㅡㅠ )
2) exportArchive 할 때의 특징
얘는 ExportOptions.plist 의 설정에 따라감.
- 여기서는 무조건 dist인증서를 요구함.
결론 ) 이러한 이유로,
- 개인 앱을 CI / CD 할 때는 archive, export ipa 둘 다 dist인증서를 요구하기 때문에,
dist인증서와 프로파일만 있으면 됨. ( 아래 zedd님 글 그대로 해도 됨. 갓젣.. )
- but, 사내 앱을 CI / CD 할 때는 archive 단계에서 dev인증서와 프로파일이 요구되서
dev, dist 각각 인증서, 프로파일이 필요함.
2. auto signing 을 하기 위해 필요한 것.
1) archive, exportArchive 명령어 두곳에 -allowProvisioningUpdates 명령어를 써줘야함.
이건 뭐 걍 써주면 됨. 쓰는 위치는
xcodebuild archive ~~~ release -allowProvisioningUpdates ~~~
xcodebuild -exportArchive -allowProvisioningUpdates ~~~
이렇게 쓰면 됨.
2) 깃헙 서버의 xcode에 로그인이 되어야함..... << 이거 때문에 autosigning을 포기함.
로그인하려고 쌩 난리하는 것 보다, 프로파일 만들어서 옮기는게, 애플에서 제공하고 있는 기능이기도 하고, 자료도 많아서..
로그인이 필요하다는 에러 메세지 :
error: There are no accounts registered with Xcode. Add your developer account to Xcode (in target '[타겟이름]' from project '[프로젝트이름]')
error: No profiles for '[번들ID]' were found: Xcode couldn't find any iOS App Development provisioning profiles matching '[번들ID]'. (in target '[타겟이름]' from project '[프로젝트이름]')
'Git' 카테고리의 다른 글
Git ) 이전 커밋과 비교하기 - EEYatHo iOS (0) | 2021.10.10 |
---|---|
Git ) 원격 브랜치 삭제, 생성 - EEYatHo iOS (0) | 2021.10.10 |
Git ) git 툴 특징, 차이점 ( cmd, xcode, sourceTree ) - EEYatHo iOS (0) | 2021.08.09 |
Git ) GithubAction - EEYatHo iOS (0) | 2021.08.04 |
Git ) Git Config - EEYatHo iOS (0) | 2021.04.28 |