728x90

분류 전체보기 289

[WWDC23] Verify app dependencies with digital signatures

안녕하세요. 이번엔 WWDC23 'Verify app dependencies with digital signatures' 세션에 대한 내용 정리해 볼게요. # 개요 Xcode에서의 의존성 서명 검증(Dependency signature verification)은 앱 개발자의 앱을 보호하며 SDK 개발자가 배포한 SDK를 보호합니다. 앱 개발하면 개발 편의성을 위해 외부 SDK를 사용하는 경우가 많은데요. 아래처럼 사용하는 외부 SDK 중 하나에 문제가 있다면 앱에도 영향이 갈 수 있습니다. 앱 개발자 또는 SDK 개발자는 코드 내에서 사용하고 있는 외부 SDK에 문제가 없는지 확인 및 검증을 해야 할 책임이 있어요. Xcode 15부터 의존성 서명 검증 기능을 제공하고, 외부 SDK 확인 및 검증 작업을..

WWDC 2023.08.16

Signing xcframework

안녕하세요. 이번엔 xcframework를 signing(서명)하는 것이 뭔지, 또 하는 방법에 대해 알아볼게요. # Signing? xcframework를 서명한다는 것은 누가 framework를 개발하고 배포했으며 서명한 이후에 framework가 변경되지 않았음을 증명하는 것입니다. # xcframework signing(서명) 방법 아래 명령어로 xcframework를 서명할 수 있어요. codesign --timestamp -s 예를 들어서, "Apple Distribution: Philip Chung (xxx)"란 인증서로 MyFramework.xcframework를 서명하고 싶으면 이렇게 쓰면 됩니다. codesign --timestamp -s "Apple Distribution: Phili..

iOS 2023.08.14

[후기] 도자기 키캡 v2

안녕하세요. 세라키 도자기 키캡 v2 후기입니다. [참고] 도자기 키캡 v1 후기는 여기를 봐주세요! # 1. 제품 가격 및 배송 Cerakey 공식 사이트에서 FULL SET V2로 판매하고 있고 가격은 White 옵션 기준으로 149 달러에 판매 중입니다. (현재는 대부분 품절인데, 한정판 느낌은 아닌 것 같고 나중에 재고 들어올 것 같아요.) 배송비는 한국 기준으로 8달러였습니다. v2 첫 출시 기념으로 7/19 ~ 7/22 동안 특별 프로모션으로 20달러 할인을 해줬고, 전 v1을 구매한 얼리버드(흑우)라 25달러 추가 할인을 받아서 총 112달러(약 15만원...;;)에 구매했습니다. 배송은 약 2주 정도 걸린 것 같아요. Cerakey 디스코드에 최신 공지사항이 올라오니, 도자기 키캡에 관심 ..

취미 2023.08.12

Multiple commands produce 'xxx.framework' 해결방법

# 현상 예를 들어 MyFramework.framework에선 PhilipKit.xcframework를 사용하고, 앱에선 MyFramework.framework를 사용한다고 가정해 볼게요. PhilipKit.xcframework를 MyFramework.framework에 추가하고 PhilipKit.xcframework와 MyFramework.framework를 앱에 추가할 때 빌드 에러가 발생했습니다. Multiple commands produce '/Users/philip/Library/Developer/Xcode/DerivedData/MyProject/Build/Products/Debug-iphonesimulator/PhilipKit.framework' Command: ProcessXCFramewor..

TroubleShooting 2023.08.12

TCA(8) : Binding

안녕하세요. 이번에는 TCA의 Binding에 대해 알아볼게요. (TCA 1.0.0 기준으로 작성했으며, 전체 코드는 여기를 봐주세요!) TCA의 Binding 기능을 사용할 땐 크게 3단계로 진행됩니다. 1) State에 Binding이 필요한 값을 BindingState property wrapper로 선언 2) Action에 BindableAction 프로토콜을 채택시키고, binding case 추가 3) Reducer의 body에 BindingReducer 추가 쉽게 설명하기 위해 TCA Binding을 활용해서 아래와 같은 URL 인코딩을 해주는 예제를 만들어볼게요. 먼저, State에 Binding이 필요한 값(변수)을 BindingState property wrapper로 선언해 줍니다. ..

SwiftUI 2023.08.09

Dictionary Enum.rawValue subscript

안녕하세요. 예전에 subscript에 대해서 알아봤는데요. [참고] subscript 란? subscript를 모르시면 여기를 먼저 보고 와주세요! Enum의 rawValue를 key로 해서 Dictionary를 읽고 쓰는 방법에 대해 추가로 알아볼게요. 아래와 같은 Dictionary가 있고, Dictionary의 key(필드)를 모아둔 Profile이란 enum 타입이 있다고 해볼게요. 공부한 것을 토대로 subscript를 추가하면 'Cannot convert value of type 'String' to expected argument type 'Profile' 이란 컴파일 에러가 발생합니다ㅠ 이 경우, enum의 rawValue를 Key 타입으로 캐스팅해서 사용해야 합니다!! [참고] Key?..

Swift 2023.08.08

TCA(7) : 0.54.0 -> 1.0.0 업데이트

안녕하세요. TCA 1.0.0이 배포된 것을 기념(?)하여, 제가 만든 TCA 샘플 프로젝트의 TCA 버전을 0.54.0 -> 1.0.0으로 업데이트해 보는 시간을 가져볼게요. (전체 코드는 여기를 참고해 주세요!) 아마 저처럼 TCA 0.x.x. 버전을 쓰시다가 1.0.0 버전으로 업데이트한 경우라면, 빌드 에러가 발생할 확률이 매우 큽니다.. 하나씩 고쳐볼게요ㅠㅠ ## (변경사항 0) deprecated API 제거 가장 큰 이유는 TCA 1.0.0으로 오면서 이전 deprecated 된 API들이 모두 제거되었어요. 만약, deprecated 된 API를 사용 중이시라면 모두 수정해야 합니다. ## (변경사항 1) ReducerProtocol -> Reducer ReducerProtocol이 Red..

SwiftUI 2023.08.07

[WWDC22] Explore App Tracking Transparency

안녕하세요. WWDC22 'Explore App Tracking Transparency' 세션을 보고 내용 정리해 볼게요. 사용자를 추적(tracking)하려면 사용자한테 권한을 받아야 하고, 그러기 위해선 AppTrackingTransparency framework를 적용해야 합니다. 이번 세션을 통해서 언제 AppTrackingTransparency를 적용하면 좋을지, 어떻게 적용해야 하는지를 알아볼 예정이에요. # When to adopt 추적이란 앱에서 수집된 사용자 또는 기기 데이터를 다른 회사의 앱, 웹 사이트에서 수집된 사용자 또는 기기 데이터와 연결해서 타겟팅 광고 또는 광고 측정을 수행하는 행위 또는 사용자 또는 기기 데이터를 데이터 브로커와 공유하는 행위를 의미합니다. 추적 관련한 몇 ..

WWDC 2023.08.05

[WWDC22] Create your Privacy Nutrition Label

안녕하세요. WWDC22 'Create your Privacy Nutrition Label' 라는 세션의 내용을 가볍게 정리해 볼게요. 사실 별 내용 없습니다..ㅎ # Label creation process Privacy Nutrition Label은 이런 거예요. (어떤 데이터가 수집되고 어떻게 사용되는지 사용자에게 알려주는 정보입니다.) 이 라벨을 쓰기 위해선 앱 내에서 어떤 데이터가 수집되고 있고 어떻게 쓰이는지를 파악해야겠죠? 보통 앱을 만들면 외부 SDK(RxSwift, Alamofire 등)를 활용하는 일이 많을 텐데요. 앱 자체에서 수집하는 데이터 뿐만 아니라 외부 SDK에서 관리 및 수집하는 데이터를 모두 포함해서 Label을 작성해줘야 합니다. (어떤 데이터를 수집하는지에 대해선 외부 ..

WWDC 2023.07.31