sigining과 관련해 "Xcode couldn't find any iOS App Development
provisioning profiles matching ~" 문제가 발생. 이는 프로파일 프로비저닝과 관련한 문제, 즉 app을 만들 때 app의 안정성을 보장하기 위한 애플의 서명절차와 관련한 문제다.
이는 애플 개발자 계정을 구매한 뒤 developer.apple.com에서 "인증서, 식별자 및 프로파일" 항목을 클릭, appID나 device 등을 등록하면 해결이 된다.
참고
에셋 카탈로그(Asset Catalog)는 애플리케이션에 사용될 다양한 에셋을 관리한다.
에셋 카탈로그는 에셋과 다양한 디바이스의 속성(디바이스의 특징, 사이즈 클래스, 주문형 리소스, 특정 타입의 정보)에 대한 파일의 mapping을 통해 리소스에 접근 할 수 있게 해준다.
에셋 카탈로그의 콘텐츠는 3가지 타입을 갖는다.
앱 시닝이란 애플리케이션이 디바이스에 설치될 때 앱 스토어와 운영체제가 그 디바이스의 특성에 맞게 설치하도록 하는 설치 최적화 기술이다. 이를 통해 애플리케이션의 설치용량을 최소화하고 다운로드의 속도를 향상시킬 수 있다. 앱 시닝의 기술 구성요소는 슬라이싱(slicing), 비트코드(bitcode), 주문형 리소스(on-demand resource)가 있다.
애플 Reducing your app’s size 공식문서
App thinning, Bitcode, Slicing: tutorial (iOS app)
스토리보드에서 Type을 Custom으로 변경하면 selected 됐을 때 이미지를 변경할 수 있다.
Cmd + shift + L : 라이브러리에서 요소 선택
@IBOutlet 속성으로 StoryBoard에서 버튼이나 레이블같은 컴포넌트와 연결된다.
@는 컴파일러에게 코드의 특정 부분에 대한 메타데이터를 제공한다. 데코레이터, 어노테이션과 유사한 개념이다.
IBAction은 Event가 일어난 경우 호출되는 Action을 정의해둔 것이고, IBOutlet은 값에 접근하기위한 변수
스토리보드와 연결
IB는 Interface Builder의 약어.
Apple 플랫폼에서 사운드 및 영상 미디어의 처리, 제어, 가져오기 및 내보내기 등 광범위한 기능을 제공하는 프레임워크다. AV는 AudioVideo 다.
주요 기능은 다음과 같다.
NSDataAsset는 에셋 카탈로그에서 데이터 애셋을 로드하는 데 사용되는 클래스다. 이 클래스는 주로 애플리케이션의 에셋 카탈로그에 저장된 이미지나 사운드, 비디오 등의 데이터를 로드하고 이를 메모리에 저장하는 데 사용된다.
let soundAsset: NSDataAsset = NSDataAsset(name: "sound")
NSDataAsset 인스턴스를 생성할 때 "sound"라는 이름을 지정하면, 애플리케이션은 "sound"라는 이름의 에셋을 에셋 카탈로그에서 찾아 로드하려고 시도한다. 그런 다음 이 데이터는 NSDataAsset의 data 속성에 저장되고, 이 속성을 통해 데이터에 접근할 수 있다.
NS 접두어는 NeXTSTEP에서 유래됐다. Objective-C와 Cocoa 프레임워크의 많은 클래스 이름에 'NS' 접두어가 붙어 있는데, NS- 로 시작되는 클래스는 Objective-C와의 호환성이 유지된다.
Cocoa Touch는 iOS, iPadOS, watchOS 등 애플의 모바일 운영 체제를 위한 UI 프레임워크로, 기존 macOS를 위한 cocoa 프레임 워크의 AppKit대신 UIKit를 사용해 터치 이벤트 및 센서 데이터 처리 등 모바일에서 요구되는 기능을 추가한 것이다.
Foundation : 문자열 처리, 날짜 및 시간 처리, 네트워크 통신, 스레드 관리 등과 같은 기본적인 데이터 관리
UIKit: 사용자 인터페이스를 구축하고 관리하는 데 사용되는 클래스를 제공한다. 창, 패널, 버튼, 메뉴, 스크롤 바 등의 GUI 요소를 담당