728x90

분류 전체보기 258

UICollectionView (1)

이번 글은 UICollectionView에 대해 간략하게 알아보려고 합니다. 우선 공식 문서부터 살펴볼게요. An object that manages an ordered collection of data items and presents them using customizable layouts. 정렬된 아이템 collection을 관리하고, 그 collection을 커스텀 가능한 layout을 사용해서 화면에 출력합니다. The collection view gets its data from the data source object, stored in the collection view’s dataSource property. For your data source, you can use a UICollec..

UIKit 2022.02.13

[iOS] 인앱 구매 및 계정 삭제 사항의 기한 연장

## 1. 온라인 그룹 이벤트 인앱 구매 App Store 리뷰 가이드라인 3.1.1 적용을 2022/06/30까지 연장했습니다. ## 2. 앱 내 계정 삭제 기능 제공 App Store 리뷰 가이드라인 5.1.1 적용을 2022/06/30까지 연장했습니다. 그리고, 앱 내 계정 삭제 기능을 제공할 때 아래 사항을 고려해야 합니다. 계정 삭제 옵션은 앱에서 쉽게 찾을 수 있어야 합니다. 일시적으로 계정을 비활성화하거나 비활성화하는 기능만 제공하는 것만으로는 부족합니다. 사람들은 개인 데이터와 함께 계정을 삭제할 수 있어야 합니다. 규제가 엄격한 산업의 앱은 계정 삭제 프로세스를 확인하고 용이하게 하기 위해 추가 지원 흐름을 제공해야 할 수 있습니다. 사용자 계정 정보를 저장하고 유지하기 위해 해당 법적 ..

News 2022.02.12

[iOS] 등록되지 않은 앱 배포

App Store에 등록하지 않고 링크로만 접근하는 앱을 배포할 수 있습니다. (카테고리, 앱스토어 검색에는 앱이 나오지 않아요) 특정 조직, 연구 관련 앱, 직원용 목적으로 앱을 배포할 때 적합합니다. App Store에 등록하지 않으려면 요청 양식을 작성해줘야 합니다. (요청 양식에는 '앱이 가지고 있는 문제점', '비공개로 배포를 해야 하는 이유'에 대해 자세하게 작성을 해야 합니다.) ## 참고 https://developer.apple.com/kr/support/unlisted-app-distribution/ 등록되지 않은 앱 배포 - 지원 - Apple Developer 포럼 Apple 엔지니어 및 다른 개발자에게 개발 주제에 관해 질문하고 이야기를 나눌 수 있습니다. 포럼 보기(영문) dev..

News 2022.02.12

Autoresizing Mask, translatesAutoresizingMaskIntoConstraints

뷰를 배치하는 방법에는 autolayout만 있는 줄 알았는데, autoresizing이라는 것이 있더라구요.. (기초 같은데 몰랐다니.....;;;) 이제라도 알아보자..라는 심정으로 autoresizingMask에 대해 알아보려고 합니다. 알아보는 김에 translatesAutoresizingMaskIntoConstraints이 어떤 역할을 하는지도 같이 알아볼게요. (뷰를 코드로 배치할 때 습관처럼 translatesAutoresizingMaskIntoConstraints = false로 줬는데 이젠 그 이유를 알아야 할 때가 온 것 같습니다...) #1 AutoresizingMask 우선 autoresizingMask의 apple document부터 보겠습니다. An integer bit mask..

UIKit 2022.02.11

Literal 이란?

ExpressibleByStringLiteral 프로토콜이 뭔지 궁금해서 공부하던 중, ExpressibleBy...Literal 프로토콜을 알려면 Literal이 뭔지 알아야 하겠더라구요... 그래서 이번 글에서는 Literal이 뭔지 우선 알아보고, 그다음에 ExpressibleBy...Literal 프로토콜도 살펴보겠습니다. #1 Literal 공식 Swift 문서를 토대로 이해한 내용을 적어보겠습니다. Literal이란, value 타입의 소스 코드 표현입니다. 아래를 보면 42, 3.14159, "Hello, world!"가 Literal입니다. 42 // Integer literal 3.14159 // Floating-point literal "Hello, world!" // String li..

Swift 2022.02.07

Swift 인스턴스 method 목록 가져오는 방법

Objecitve-C는 runtime.h를 사용하면 인스턴스 method 목록을 가져올 수 있지만 Swift는 쉽지 않더라구요... Swift에서 인스턴스 method 목록을 가져올 수 있는 꼼수(?)를 발견해서 내용을 정리합니다. #1 제약조건 Swift 클래스는 NSObject를 상속 받아야 합니다..ㅠㅠ @objc 태그가 붙은 method 정보만 가져올 수 있습니다...ㅠㅠ static method 정보는 읽어올 수 없습니다...ㅠㅠ #2 extension 추가 NSObject를 extension한 아래 코드를 추가해주세요. extension NSObject { static func methodList(className: String) -> [String]? { guard let someClass ..

Swift 2022.02.06

[Unity] Unity iOS Resolver(EDM4U)에서 xcworkspace 생성되지 않는 이슈

Unity iOS Resolver는 Unity에서 사용할 수 있는 iOS 의존성 관리 툴입니다. 보통은 Unity 빌드를 하면 알아서 pods 설치 및 xcworkspace가 생성되어야 하는데, wcworkspace가 생성되지 않는 이슈를 발견하여 정리합니다. #1 현상 Cocoapods 1.11.2를 사용하던 중, Unity iOS Resolver 설정 후 Unity 빌드 시 wcworkspace가 생성되지 않았습니다. 아래는 에러 로그입니다. iOS framework addition failed due to a CocoaPods installation failure. This will will likely result in an non-functional Xcode project. After the ..

TroubleShooting 2022.02.05

SceneDelegate를 제거하는 방법

Xcode 11부터 iOS 프로젝트를 생성하면 기본적으로 SceneDelegate가 적용된 템플릿이 생성됩니다. 이번 글에서는 SceneDelegate를 사용하지 않도록 설정하는 방법에 대해 알아보겠습니다. #1 프로젝트 생성 iOS App으로 기본 프로젝트를 생성하면, SceneDelegate가 생성된 것을 볼 수 있습니다. Main.storyboard에 간단한 라벨을 추가하고 빌드 해봅시다. 기본 상태에서 잘 나오는 것을 확인했으니 이제 SceneDelegate를 제거하는 작업을 해봅시다. #2 SceneDelegate 제거 우선 제일 먼저 보이는 SceneDelegate.swift 파일을 삭제합니다. 그 이후에 AppDelegate.swift로 가서 UISceneSession Lifecycle을 지..

iOS 2022.02.05