[Xcode Build Error] Cocoapods Error
File not found: /Applications/Xcode.app/Contents/Developer/Toolchains /XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a
File not found: /Applications/Xcode.app/Contents/Developer/Toolchains /XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a
iOS 16 버전부터 SwiftUI 전용 ImageRenderer 를 통해 뷰를 이미지로 캡쳐 할 수 있다. 일반적인 사용법은 아래와 같다.
video 를 연속으로 재생하는 플레이어를 간단하게 만들어 봤다.
후기 RxDataSource 나 기존 UICollectionViewLayout 으로 구현 불가능한 세로/가로 스크롤형 뷰를 생성 가능 이전 버전에 대한 대응 노하우가 쌓인다면 사용해볼만 함 지원하는 OS 버전이 낮을 수록 안정성이 떨어짐 최소버전을 ...
UIStoryBoard를 사용한다면 UITabBarItem을 CustomClass로 적용하기 매우 쉽다. 코드 베이스라면 UITabBarItem이 UITabBarController에서 자체적으로 가지고 있기 때문에 CustomClass를 적용하기가 애매해진다.
StoryBoard 없는 UIKit UIKit 기반 code base 프로젝트를 생성하는 방법이다. 개발을 하다 보면 UIKit 기반 프로젝트가 필요할 때가 있다. 이 글은 Xcode 14.0.1을 기반으로 합니다.
애플리케이션의 크래시는 운영에 매우 중요한 요소이다. 현재 운영 중인 프로젝트는 99.98% ~ 99.99% 의 크래시로부터 안전성을 유지하고 있다. 주로 Firebase Crashlytics와, Xcode Organizer의 Crashs로 report를 받고 있으며, 예상치 못한...
AVPlayer는 Application의 Life Cycle에 영향을 받는다. UI는 Background에 진입하면 동작을 멈추고, UI가 아닌 기능은 Background에서 동작한다.
터미널에서 xcrun 명령으로 시뮬레이터에서 동적 링크를 열 수 있다.
UIActivityViewController는 OS 공유화면으로 매우 널리 쓰인다. String, Image 등 손쉽게 다른 앱에 컨텐츠를 공유할 수 있다.
회사에서 신규 장비를 받았다. ‘역시나’ Xcode를 신규 세팅하면 예기치 못한 오류를 만나게 되는데, 바로 Codesign wants to access key "access" in your keychain
Xcode빌드 시 디바이스로 연결해서 빌드 했을 때 간헐적으로 발생한다. 정말 1년에 1번 정도 발생하는거 같은데, 발생률이 드물다 보니 매번 까먹어 메모한다.
Apple Silicon 에서 MacOS App 빌드 시 간헐적으로 발생하는 오류다. 지금 실행 중인 앱과, 빌드한 앱에서 충돌이 발생하는 것이 원인이다.
iOS 10 부터 지원하는 videoRect property 를 사용해서 play 중인 영상의 frame을 가져올 수 있다.
Fastlane 은 iOS개발을 도와주는 좋은 도구이다. 배포 자동화를 도와주는 툴이며, 많은 iOS개발자들이 사용할 수 있다. 대표적인 장점은 수동으로 배포를 하다 보면 실수를 할 수 있는데, 이를 방지할 수 있는 장점이 있다.
구글 번역기로 돌린 번역입니다. 잘못된 오역이 있음을 주의하여 주세요.👀
WKWebView를 사용하다보면 종종 아래와 같은 크래시를 발견할 수 있다. Fatal Exception: NSInternalInconsistencyException Completion handler passed to -[UIViewController webView:runJa...
유연하고 시각적으로 항목을 결합하는 Layout이며 iOS 13+ 이상에서 사용할 수 있다. Group이라는 중간 계층이 추가되어 horizontal scroll, group items 등 다양한 화면을 만들 수 있다.
TableView(또는 CollectionView)를 그리기 위한 데이터를 관리하고 UI를 업데이트 하는 역할 Data Source와 달리 데이터가 달라진 부분을 추적하여 자연스럽게 UI를 업데이트 UI Data를 관리하고, 변경된 데이터만 UI를 자연스럽게 업데이트 ...
요구사항 Facebook 로그인 Google 로그인 Apple 로그인 Kakao 로그인
보호된 파일(키 체인, UserDefaults 등)을 엑세스 가능한지 확인하는 변수이다.
절차 지향적 프로그래밍은 디버깅, 데이터의 무결성에 단점을 가지고 있다. 또한 코드가 if else로 분기되며 많은 코드들이 조건문으로 쌓이게 됨으로 시간이 지날수록 수정하기 어렵게 되고 유지보수에 불리하게 된다. SwiftUI가 암시하는 것 SwiftUI가 제시하는 아키텍...
구글 번역기로 돌린 번역입니다. 잘못된 오역이 있음을 주의하여 주세요.👀
Swift의 장점은 선언적 구분과 데이터 주도 기반에서 비롯된다. SwiftUI 는 UIKit을 구현하는 방법과 완전히 다른 선언적 구문이 도입 되었다.
mutable Collection 으로 key-value쌍을 임시로 저장하는데 사용된다.
repo 설치 중 cancel 이 되거나 오류가 발생하면 이후 pod install 을 하게 되면 아래 와 같은 오류가 발생하게 된다.
구글 번역기로 돌린 번역입니다. 잘못된 오역이 있음을 주의하여 주세요.👀
USB 포트가 없는 Apple TV 4K는 어떻게 빌드를 할까? Device를 USB로 연결하지 않고 빌드하는 방법을 공부했다.
Xcode Extension 을 만드는 방법을 스크랩 해본다.
Xcode에서 새 파일을 생성하면 상단 헤더가 자동으로 생성되는데, 네이밍을 변경하는 방법을 알아보자. // Created by {my name here} on 8/4/11. // Copyright 2011 __{my company name here}__. All rights ...
Could not find module for target ‘x86_64-apple-ios-simulator’; found: arm64, armv7-apple-ios, arm64-apple-ios, arm, armv7
Not running, Inactive, Active, Background, Suspended
loadView() 컨트롤러가 관리하는 뷰를 로드한다. 뷰컨트롤러가 생성되고 순차적으로 완성되었을때만 호출된다.
HTTP HTTP Live Streaming(HLS) protocol을 통해 스트리밍 미디어를 장치로 안전하게 전달합니다. 콘텐츠 제공업체, 인코딩 공급업체 및 전송 네트워크는 FairPlay 스트리밍(FPS) 기술을 사용하여 콘텐츠를 암호화하고 키를 안전하게 교환하며 iOS, ...
뷰의 크기가 변경될 때마다 이에 대응하여 하위 뷰들의 크기&위치 변경한다. 이 메소드는 setNeedsLayout과 같이 수동으로 layoutSubviews를 예약하는 행위이지만 해당 예약을 바로 실행시킨다.
업데이트 주기에 해당 View와 모든 하위 View를 레이아웃 및 draw 하도록 시스템에 알려주는 역할을 한다.
next drawing cycle 동안 View를 업데이트해야 함을 시스템에 알린다. setNeedsDisplay()메소드 또는 setNeedsDisplay (_ :)를 사용하여 View rendering 을 시스템에 요청한다.
뷰의 크기가 변경될 때마다 이에 대응하여 하위 뷰들의 크기, 위치 변경한다. auto layout을 사용하면 각 뷰의 autoresizingMask프로퍼티를 설정하여 상위 뷰의 크기가 변경되었을 때 어떻게 대응할 지 규칙을 정할 수 있다. 뷰의 크기에 변경이 발생하면 우선...
SuperView 기준
전달된 CGRect 의 영역에 대해 뷰를 다시 그릴때 호출된다.
자신 기준
UIView클래스는 컨텐츠를 표시할 때, on-demand 드로잉 모델을 사용한다. View를 업데이트하려면 다음 드로잉사이클 때까지 기다렸다가 한꺼번에 업데이트 된다. 비동기 요청을 기록하고 즉시 리턴합니다. 즉각적인 업데이트를 강제하지는 않지만, 다음 업데이트 주기를 기다...
키워드로 태그를 지정하고 태그별로 그룹으로 요청할 수 있는 이미지 및 사운드와 같은 리소스입니다. App Store는 Apple 서버의 리소스를 호스팅하고 다운로드를 관리합니다. 또한 App Store는 on-demand resource를 분할하여 앱 변형을 더욱 최적화합니다.
Bitcode 는 컴파일된 프로그램의 중간 표현입니다. Bitcode가 포함된 App Store Connect에 업로드하는 앱은 App Store에서 컴파일 및 연결됩니다. - Bitcode를 포함하면 Apple이 앱의 새 버전을 App Store에 제출할 필요 없이...
슬라이싱 은 다양한 대상 장치 및 운영 체제 버전에 대한 앱 번들의 변형을 만들고 제공하는 프로세스입니다. 변형은 대상 장치 및 운영 체제 버전에 필요한 경우에만 실행 아키텍처와 리소스가 포함되어 있습니다. 앱의 전체 버전을 계속 개발하고 App Store Connect에 업로...
App Store 및 운영 체제는 최소한의 설치 공간으로 사용자의 특정 장치 및 운영 체제 버전의 기능에 맞게 앱 제공을 조정하여 iOS, tvOS 및 watchOS 앱 설치를 최적화합니다. thinning 이라고 하는 이 최적화를 통해 대부분의 기기 기능을 사용하고 최소 디스크 ...
문자열 음역(Transliteration) 변환을 제공한다. ```swift public struct StringTransform : Hashable, Equatable, RawRepresentable { public init(_ rawValue: String) public...
문자열 처리에 여러가지 옵션을 지정하여 처리할 수 있다. ```swift extension NSString { public struct CompareOptions : OptionSet { public init(rawValue: UInt) public static ...
ascii 를 기준으로 정렬 되는 방식을 나타낸다.
nil / NULL / Nil 은 Objective-C 에서 사용할 수 없는 번지를 가리키는 포인터의 부재 Swift에서는 모두 nil로 처리한다.