728x90

전체 글 288

Preview Content 란..?

안녕하세요. SwiftUI 프로젝트를 만들면 Preview Content라는 폴더가 있어요. 갑자기 이게 뭔지 궁금해져서.. 가볍게 찾아봤습니다. 쉽게 말해, Preview Content는 디버깅용 그룹을 의미하며, Preview Content 안에 있는 Assets, Swift 파일, 기타 파일들은 실제 앱에는 포함되지 않아요. 예를 들어, 'Preview Content > Preview Assets' 안에 Logo라는 이미지를 추가하면 시뮬레이터나 프리뷰에선 문제가 없지만, 아카이브 빌드를 할 경우 Preview Content 그룹은 앱에 포함되지 않아, Type 'ImageResource' has no member 라는 빌드 에러가 발생합니다.   이번 글은 여기서 마무리.

SwiftUI 2024.11.01

Alternative App Icon으로 앱 실행 중에 앱 아이콘 변경하기

안녕하세요. Alternative App Icon이란 것을 사용하면 런타임 때 앱 아이콘을 바꿀 수 있습니다. 왜 난 몰랐지..;; 한번 알아볼게용 # 앱 아이콘 변경 방법1) Assets에 기본 아이콘과 함께 대체할 다른 앱 아이콘을 추가합니다. 2) (Optional) 만약 화면에서 앱 아이콘 이미지를 보여주고 싶으면 Assets에 Image Set으로 추가해 주세요. [참고] iOS 18에서는 UIImage(named:)를 사용해 앱 아이콘 이미지를 가져올 경우 nil이 반환되기 때문 3) 'Build Settings > Alternate App Icon Sets' 설정에 대체될 앱 아이콘 이름을 추가합니다. 4) alternateIconName으로 현재 앱 아이콘 이름을 가져오고, setAlter..

iOS 2024.10.29

Framework 프로젝트의 ObjC 클래스에서 Swift Public 클래스 사용하기

안녕하세요. 이번엔 framework 프로젝트 안에 있는 Objective-C 클래스가 Swift 코드를 사용할 수 있는 방법을 간단하게 정리해 볼까 해요. # 필수 설정Objective-C에서 Swift 모듈을 사용하려면, Swift는 반드시 NSObject를 상속받은 클래스여야 하며, 클래스에 @objc 또는 @objecMembers 속성이 있어야 합니다.  # Swift Public 클래스의 Public 메서드, 프로퍼티 사용하는 방법1) public 메서드 또는 프로퍼티에 @objc 설정 추가  2) {Framework}-Swift.h 헤더를 import 후 사용  # Swift Public 클래스의 Internal 메서드, 프로퍼티 사용하는 방법Framework 환경에선 Bridging Hea..

iOS 2024.10.27

CocoaPods Support & Maintenance Plans

안녕하세요. CocoaPods 유지보수 계획에 대한 공지 공유드립니다. 자세한 내용은 본문 참고해 주세요! CocoaPods Support & Maintenance Plans - CocoaPods BlogTLDR: We're still keeping it ticking, but we're being more up-front that CocoaPods is in maintenance mode. CocoaPods is about 13 years old now, and the landscape of iOS development has changed a lot in that time. I remember the fragmented islets of small sblog.cocoapods.org# 요약SPM 출시..

News 2024.09.29

shell script로 '[CP] Copy Pods Resources' 항목 제거

안녕하세요. CocoaPods을 사용하면, 프로젝트 Build Phases에 '[CP] Copy Pods Resources' 항목이 들어가는데요. 이 항목을 제거하는 shell script 공유합니다. 수동으로 지울 수는 있는데 pod install 또는 pod update 할 때마다 다시 추가되더라구요. 저처럼.. 자동화 필요하신 분들은 shell script 사용하는 것을 추천합니다! (shell script 말고 더 좋은 방법 아시는 분 있으면 공유해 주세요ㅠㅠ 꼭...) 우선 xcodeproj 모듈 설치하고sudo gem install xcodeproj   아래 스크립트 실행해주세요. 이번 글은 여기서 마무리.

iOS 2024.09.29

[Xcode 16] `force_encoding': can't modify frozen String (FrozenError) 해결방법

안녕하세요. Xcode 16에서 'pod install' 하니까 이런 에러가 발생했어요ㅠ/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface/error_report.rb:34:in `force_encoding': can't modify frozen String (FrozenError)/Library/Ruby/Gems/2.6.0/gems/xcodeproj-1.25.0/lib/xcodeproj/project.rb:85:in `initialize': [Xcodeproj] Unable to find compatibility version string for object version `77`. (ArgumentError) 해결 방..

TroubleShooting 2024.09.27

[Xcode 16] RuntimeError - `PBXGroup` attempted to initialize an object 에러 해결방법

안녕하세요. Xcode 16으로 신규 프로젝트 생성 후 'pod init'을 하니까 에러가 발생했어요ㅠRuntimeError - `PBXGroup` attempted to initialize an object with unknown ISA `PBXFileSystemSynchronizedRootGroup` from attributes: `{"isa"=>"PBXFileSystemSynchronizedRootGroup", "exceptions"=>["D40ED03F2CA5CAF200433E18"], "path"=>"MyApp", "sourceTree"=>""}` 이때 해결방법 공유할게요. # 해결방법1. xcodeproj를 '패키지 내용 보기'로 열기 2. project.pbxproj 열기 3. 'PBXFil..

TroubleShooting 2024.09.27

[iOS] AOD 기능 여부에 따라 화면 App lifecycle 이벤트가 다르게 발생한다.

안녕하세요. AOD (Always On Display) 기능이 있냐 또는 활성화되어 있냐 여부에 따라서 화면 잠금 시 발생하는 App lifecycle 이벤트가 다르다는 것을 최근에 알게 되었습니다. AOD 기능 여부에 따라 App lifecycle 이벤트가 어떻게 발생하는지 아래에 정리해 봤어요.  AOD 기능 OFFAOD 기능 ON앱 시작1) willEnterForeground2) didBecomeActive1) willEnterForeground2) didBecomeActive앱을 background로 내리기1) willResignActive2) didEnterBackground1) willResignActive2) didEnterBackgroundbackground 앱을 화면에 올리기1) will..

TroubleShooting 2024.09.26

맥북 화면 이분할 및 이동하는 방법 + 단축키

안녕하세요. 윈도우를 쓰던 분들이 맥북을 처음 사용할 때 가장 불편하게 느끼는 것 중 하나가 바로 화면 분할이나 화면 이동이 불편하다는 점일 거예요...;;; 외부 프로그램 쓰지 않고 윈도우처럼 맥북에서 화면(창)을 이분할 하거나 전체 화면으로 하는 방법 알려드릴게요.[참고] 앞으로 설명드리는 방법은 앞서 WWDC24 Keynote에서 발표한 것처럼 macOS Sequoia (15.0) 이상에서 가능해요.macOS 버전이 낮으신 분들은 업데이트 해주세요! # 방법 1macOS Sequoia로 업데이트한 이후 '최대화' 버튼에 커서를 올려두면 아래처럼 Move & Resize (이동 및 크기 조절) 창이 나와요. 요걸 클릭하면 화면이 자동으로 이동합니다. # 방법 2'윈도우 > 이동 및 크기 조절' 메뉴..

기타 2024.09.18