본문 바로가기

전체 글213

iOS App 제출 시 iPad 스크린샷 제외 iOS 앱을 제출하는데, iPad 필수 스크린샷을 등록해야 한다는 문구가 나올 경우 Xcode 바이너리 빌드 시에 iPad가 포함되어 있어서 그렇습니다. TARGETS > General > Supported Destinations에서 iPad를 제거하고, 위의 상태에서 Archive하여 ASC에 올리면 됩니다. 그러면 더 이상 iPad 스크린샷을 요구하지 않을 것입니다 :) 참고자료 https://www.clien.net/service/board/cm_app/16239091 2023. 5. 14.
SPM 사용 시 XCTest에도 library 추가하기 Firestore와 FirebaseAuth를 사용하게 되어, TDD를 해보려는데 아무런 코드도 추가하지 않은 Test 파일 빌드가 되지 않았다. 알고보니 Project Target에 추가해 둔 Firebase 관련 라이브러리들이 Test Target에는 추가가 되지 않아서 발생하는 문제였다. 아래와 같은 에러가 발생 Test Target에 라이브러리를 추가하는 방법은 원하는 Target 선택 > Build Phases > Link Binary With Libraries 에 필요한 package들 추가 해주면 된다. Package 추가할 때 project target에 추가된 package를 정확히 추가해주어야 한다. 그렇지 않으면 계속 에러가 발생한다. 내 경우는 FirebaseStorage 패키지 대신.. 2023. 5. 6.
UICollectionViewCell Cell 플립 기능 구현하기 참고자료 https://www.google.com/search?q=ios+cell+flip+animation&rlz=1C5CHFA_enKR930KR930&sxsrf=AJOqlzU_ml6KOu4PCeYhzSIkqKvNKezJtg%3A1673961191456&ei=557GY_DCG9Lj-AbK7JKgDA&ved=0ahUKEwiw0ryx1878AhXSMd4KHUq2BMQQ4dUDCA8&uact=5&oq=ios+cell+flip+animation&gs_lcp=Cgxnd3Mtd2l6LXNlcnAQAzIFCCEQoAEyCAghEBYQHhAdOgoIABBHENYEELADOgQIIRAVOgoIIRAWEB4QDxAdOgcIIRCgARAKSgQIQRgASgQIRhgAUKcMWJ0hYOsiaANwAXgAgAG8AYgB5wy.. 2023. 1. 17.
URLSession 알아보기 URLSession은 networking을 위한 API 입니다. 사용할 때마다 순서가 잘 생각이 나지 않아서 정리해두려고 합니다 :) 작동 flow 1. URLSession 생성 let session = URLSession(configuration: .default) session의 configuration에는 4가지 종류가 있습니다. 1) no configuration: shared로 singleton을 이용하는 경우에는 configuration이 따로 적용되지 않습니다. 요청이 제한적인 경우에 사용하기 적합합니다. 2) default configuration: shared session과 매우 유사하지만 delegate을 사용해서 data를 더 많이 가질 수 있도록 할 수 있습니다 (-> 정확히 어떤.. 2023. 1. 16.
Semantic Versioning - 버전 정하는 방식 나중에 버전 정할 때 참조하기! https://devopedia.org/semantic-versioning Semantic Versioning Software is almost always versioned to coordinate installation, upgrades and correct interfacing with other software. While a flat linear numbering such as 123, 124, 125… might do the job, Semantic Versioning (SemVer) presents a better numbering scheme. devopedia.org 2023. 1. 15.
Missing package product <package name> 에러 해결 방법 Package.swift에 dependency를 추가하다가 Missing Package produdct 'packagename' 이라는 에러 발생 => File > Packages > Reset Package Caches 해준 다음 다시 build 하여서 해결 https://lxxyeon.tistory.com/150 [Xcode, Error]Missing package product [에러내용] Missing package product 'SnapKit' Missing package product [해결법1] File > Swift Packages > Reset Package Caches [해결법1] File > Swift Packages > Update to Latest Package Versions .. 2023. 1. 14.
accessibility identifiers 추가하는 방법 UIView에 identifier를 추가하면 Constraint log를 조금 더 쉽게 볼 수 있습니다. Code로는 어떻게 추가할 수 있는 지 알아보겠습니다. private let button: UIButton = { let button = UIButton() button.setTitle("Button", for: .normal) button.backgroundColor = .systemBlue //accessibilityIdentifier & isAccessibilityElement 설정! button.accessibilityIdentifier = "button" button.isAccessibilityElement = true button.translatesAutoresizingMaskIntoCon.. 2023. 1. 13.
CoreData 사용하기 안녕하세요! iOS에서 local database로 주로 사용하는 몇 가지 db 프레임워크나 라이브러리가 있습니다. 이번에는 Apple에서 제공하는 CoreData 프레임워크의 사용 방법에 대해서 알아보도록 하겠습니다. CoreData란? Persist or cache data on a single device, or sync data to multiple devices with CloudKit. Data를 하나의 기기 내부에 저장 또는 cache하거나, CloudKit을 이용해 여러 대의 기기에 data를 sync하기 위해 사용하는 framework 특징 - 공식문서에 나온 특징들: 영속성(Persistence) 변경사항의 Undo, Redo 백그라운드 데이터 작업 기능 동기화 기능 버전 관리 및 마이.. 2023. 1. 9.
APNs에 대해서 알아보기! iOS app에서 push notification을 사용하기 위해서는 APNs를 사용해야 합니다. APNs는 Apple Push Notification service의 약자로 애플에서 푸쉬 알림을 위해 사용하는 API입니다. APNs는 Push Server와 Application 사이에서 token 검증을 하는 중간다리 역할을 합니다. Push Server는 필요에 따라 직접 구축하기도 하지만 편리함을 위해서 Firebase, Braze등의 서비스를 사용하기도 합니다. 어떤 종류던지 Push Server들은 곧바로 app에 push notification을 보낼 수 있는 것이 아닙니다. APNs에 보낸 다음 APNs에서 인증을 한 이후에 app에 push를 보냅니다. 전체적인 흐름은 아래 그림과 같습니다.. 2023. 1. 5.
반응형