iOS
-
Fastlane 으로 Firebase Distribution 연동하기iOS 2020. 8. 6. 10:02
Fastlane 은 커맨드 라인으로 iOS 어플리케이션을 배포하게 하는 프로그램입니다. Firebase Distribution은 애드훅을 이용해 테스트플라이트의 빌드를 거치지 않고 배포하게 하는 툴입니다. 두개를 조합하면, 커맨드라인에서 파이어베이스로 원큐에 올리는 프로그램을 작성할 수 있습니다. 이번 포스트에서는 fastlane 사이닝 이슈, firebase distribution 연동 이슈 등은 생략합니다. https://sesang06.tistory.com/124 Fastlane 으로 iOS 빌드 과정을 손쉽게 자동화하자 Fastlane 으로 iOS 빌드하기 https://fastlane.tools/ fastlane은 루비 기반 클라이언트 자동 빌드 오픈소스 라이브러리입니다. iOS 프로젝트에서는 ..
-
FastLane Match 를 이용해 사이닝 관리하기iOS 2020. 8. 6. 09:33
커맨드 라인으로 할 때 사이닝 이슈 Testflight 로 업로드할 때는 appstore, Firebase Distirbution 으로 배포할 때는 adhoc 의 사이닝이 적절하게 위 깃허브에 저장되어 있어야 합니다. 그렇지 않으면 사이닝이 적절하게 되지 않아, match 액션에서 막혀서 빌드가 취소되게 됩니다. 코드 사이닝 기본 개념 Code Signing Guide for Teams 한 계정에 인증서와 프로비저닝 프로필을 넣어 두고, git 에 올려두어서 필요할 때 관리하는 방식입니다. 깃에 코드 사이닝을 관리하는 방법 기본 요구사항은 팀 전체에서 하나의 코드 서명 ID를 공유하는 것입니다. 가장 쉬운 방법은 iOS-dev@company.com과 같은 팀의 새로운 Apple ID를 만들어 지금부터 사..
-
XcodeGen을 활용해 xcodeproj의 마지 컨플릭트에서 벗어나라iOS 2020. 4. 26. 15:35
XcodeGen 은 폴더 구조와 설정 파일 하나를 바탕으로 Xcode Project 를 만드는 툴입니다. xcode로 개발할 때 가장 골치가 아픈 것은 xcodeproj 이었습니다. 뭐만 하면 마지 컨플릭트가 나고, 뭐만 하면 마지 컴플릭트가 나고.. 이게 단독개발이면 그나마 참을만한데, 여럿이서 피처 개발을 하면 마지 컴플릭트를 해결하는 것 자체가 귀찮습니다. 다른 데에서는.. XcodeGen 을 사용해서 이런 문제를 해결한다는 말을 들은 적이 있었습니다. Let's Swift 에서 데브소울님의 컨퍼런스에서도... XcodeGen 을 이용해 마지 컴플릭트를 해결한더라- 라는 말이 있었습니다. 그래서 XcodeGen을 한번 써보자 해서 다운받아서 쓰게 되었습니다. https://github.com/yon..
-
애드훅보다 간편하다! 테스트플라이트보다 빠르다! 파이어베이스 iOS 배포를 활용해 보자iOS 2020. 4. 26. 01:15
파이어베이스 앱 배포를 이용하면 애드훅보다 간편하게 배포할 수 있습니다. 테스트플라이트 말고 굳이 서드파티 왜 쓰냐 생각하실 수 있는데, 파이어베이스 앱 배포를 쓰면 테스트플라이트에 뜨기까지의 시간 지연을 건너뛸 수 있습니다. 파이어베이스 앱 배포를 이용하는 방법을 공유하겠습니다. 이전 포스트에서 이어집니다. https://sesang06.tistory.com/181 Xcode 11 에서 애드훅으로 앱을 배포하는 방법, 드롭박스나 구글 클라우드 이용보다 확실한 배포 방법 애드훅은.. 테스트플라이트를 대신해서 배포하는 방식입니다. 테스트플라이트는 애플에서 처리하는데 시간이 걸리므로.. 어느정도 지연이 있습니다. 큰 프로젝트의 경우 2시간은 족히 걸립니다. 이 시간이 꽤나 길.. sesang06.tistor..
-
Xcode 11 에서 애드훅으로 앱을 배포하는 방법, 드롭박스나 구글 클라우드 이용보다 확실한 배포 방법iOS 2020. 4. 26. 01:00
애드훅은.. 테스트플라이트를 대신해서 배포하는 방식입니다. 테스트플라이트는 애플에서 처리하는데 시간이 걸리므로.. 어느정도 지연이 있습니다. 큰 프로젝트의 경우 2시간은 족히 걸립니다. 이 시간이 꽤나 길기 때문에... 애드훅으로 이걸 단축시켜보자고 생각했습니다. 다만, 튜토리얼등이 Xcode 10.0 기준이라서 지금 상황이랑 조금 달라서, 헤메게 되었습니다. 다른 분들은 헤메지 않도록, 방법을 공유합니다. 기기 등록하기 아카이브하기 전에, 설치할 기기를 등록해 주어야 합니다. 전통적인 방식으로 developer 포탈에 가서 등록해 줄 수도 있겠으나.. 기기를 무선으로 연결하고 Xcode 에서 Register Device 를 입력하면 동일한 효과를 냅니다. 아카이브 이후 등록된 기기는 정상적으로 설치되지..
-
[잡설] 빌드 속도 단축에 대한 고민iOS 2020. 4. 25. 23:48
카르타고가 은근히 귀찮게 하는 구석이 많을듯 합니다. 11.4 에서 엑스코드에서 또 이상한거 해서 소켓-아이오가 카르타고에서 빌드가 안 됩니다. 걍 집에서 슥슥보다가 어? 되네 해서 고쳐서 PR 날렸습니다. https://github.com/socketio/socket.io-client-swift/pull/1283 Support carthage for Xcode 11.4 by sesang06 · Pull Request #1283 · socketio/socket.io-client-swift #1278 github.com 민소네님의 블로그를 따라하다보면 프로젝트를 다중 레포로 나누어서 하는 방법도 대충 파악했습니다. 특히 let us go 2019 봄의.. 프레임워크 주도 개발을 하면 잘 될 것 같습니다. ..
-
느려터진 iOS 빌드 속도로 고통받는 당신에게, 카르타고를 권장합니다.iOS 2020. 4. 24. 00:23
서론 카르타고를 왜 도입했는가. iOS 라이브러리 의존성 관리 툴은 여러 가지가 있습니다. 그중 코코아팟이 제일 유명하고, 저도 코코아팟을 써 왔습니다. 코코아팟은 통소스를 다운로드하고, 컴파일할 때마다 라이브러리 소스를 같이 빌드합니다. 라이브러리가 많아질수록 클린 빌드의 속도가 느려집니다. 반면 카르타고는 라이브러리 소스를 미리 빌드합니다. 처음 라이브러리를 가져올 때에는 시간이 조금 걸리겠습니다만, 클린 빌드를 할 때 자체 코드들만 빌드하게 됩니다. 따라서 개발 중 빌드 시간이 줄어들게 됩니다. 갈수록 프로젝트에 스위프트 코드와 rxSwift 코드가 많아지니, 갈수록 컴파일 속도가 느려지게 되었습니다. 빌드 속도가 느려지면서 개발에는 차질이 생겼습니다. 한번 날 잡고 카르타고로 옮겨보자 했습니다. ..
-
SWIFT 질문들iOS 2020. 3. 14. 01:19
class와 struct의 차이 상속 됨 / 안 됨 힙이냐 스택이냐. 속도는 struct 가 더 빠름. 프로토콜은 둘다 준수 가능. class A와 class B에 동일한 함수가 있다면 어떻게 바꿀 수 있나? 이건 뭔소린지 모르겠음. enum / function / closure 각각 value type 인가 reference type 인가? https://developer.apple.com/swift/blog/?id=10 struct, enum, tuple: 값 타입 closures, function: 참조 타입 탈출 클로저 펑션에 인자로 들어갔지만 펑션 리턴 후에 실행되는 클로저 https://docs.swift.org/swift-book/LanguageGuide/Closures.html#ID104 ..