전체 글
-
앱 배포 스크립트 작성하기Dev 2023. 5. 12. 20:41
안녕하세요 :) 요즘 앱 배포 관련 자동화 툴이나 방식이 정말 다양하지만 생각보다 관련 툴들이 복잡하다는 생각이 들었습니다 이런 툴들이 결국에는 이미 존재하는 기능들을 활용하는것이기 때문에 직접 스크립트를 짤수 있을것이라고 생각을 했고 실제로 시도해본 결과 생각보다 복잡하지 않았고 오히려 fastlane 같은 툴을 사용하지 않고도 간단하게 적용을 할 수 있었습니다 # 1. 아카이브 xcodebuild -scheme "스킴이름" archive -archivePath "build/앱이름.xcarchive" # 2. ipa 추출 xcodebuild -exportArchive -archivePath "build/앱이름.xcarchive" -exportOptionsPlist exportOptions.plist -..
-
Array safe subscript을 통한 index out of bounds 크래쉬 방지하기Swift 2022. 12. 11. 18:03
안녕하세요 :) 오늘은 Swift 코드를 작성하면서 경계해야되는 습관 중 index out of bounds를 방지하는 방법에 대해 알아보도록 하겠습니다 Swift에서는 배열을 다룰때 index 통한 접근을 할 수 있는데요 이 행동이 잘못 사용될 경우에 index out of bounds 에러가 발생하면서 앱이 죽는 현상을 겪을 수 있습니다 let arrayOfInts = [1, 2, 3] print(arrayOfInts[3])// Fatal error: Index out of range 위 코드는 간단해서 문제가 바로 보이지만 실제 개발 환경에서는 이러한 문제를 가끔 놓칠수가 있습니다 (그대로 배포가 나갔다면 아찔하네요...) 아래 코드를 봅시다 public extension Array { subscr..
-
Xcode Configurations으로 프로젝트 환경 분리하기iOS 2022. 11. 21. 19:33
안녕하세요 :) 오늘은 Xcode 프로젝트에서 서비스의 환경을 분리하는 작업을 해보도록 하겠습니다 환경을 분리하는 방법은 다양합니다 - 코드상에서 if else로 분리하는 방법 - 단일 타겟에 대해 여러 Configurations을 설정하는 방법 - 타겟 여러개를 사용해서 각 환경에 맞게 구성하는 방법 첫번째는 가장 간단하지만 코드가 반복되고 휴먼에러가 쉽게 발생합니다 두번째는 설정된 Config 파일을 통해 환경 변수를 설정하여 휴먼 에러를 방지하지만 단일 타겟이라는 점 때문에 각 환경별 커스터마이징이 쉽지 않습니다 세번째는 환경 별로 타겟을 분리하여 각 타겟이 설정된대로 작동하기 때문에 환경 분리가 가장 잘 이루어진다고 할 수 있지만 단일이 아닌 다중 타겟을 사용하기 때문에 관리 포인트가 많아지고 x..
-
Github Action으로 Testflight 배포 자동화하기Dev 2022. 11. 8. 14:05
안녕하세요 :) 오늘은 Github Actions으로 Testflight으로 앱을 배포하는 걸 정리해보도록 하겠습니다 제가 처음에 목표로 했던 플로우입니다 1. 태그 푸쉬 2. Github Actions workflow 트리거 3. 푸쉬된 태그에서 앱 버전 추출 4. 추출된 버전으로 빌드 생성 5. 생성된 빌드 Testflight으로 배포 작업하면서 수정된 플로우입니다 1. 태그 푸쉬 2. 환경 변수 설정 3. Git 체크아웃 (코드 체크아웃) 4. 푸쉬된 태그에서 앱 버전 추출 5. 추출된 앱 버전으로 현재 프로젝트를 앱 버전 변경 6. 키체인 초기화 7. 인증서 복호화 및 설치 8. 앱 아카이브 9. 아카이브에서 ipa 추출 10. Testflight으로 업로드 인증서 사이닝쪽이 추가되고 작은 작업들..