iOS 개발자라면 꼭 알아야 할 Keychain과 App ID의 관계 iOS 개발을 하다 보면 “앱이 민감한 데이터를 저장할 곳”이 필요합니다. 사용자 로그인 정보, 토큰, 인증서 등 평문으로 저장하면 안 되는 중요한 정보 말입니다. 이럴 때 사용하는 것이 바로 Keychain입니다. Keychain이란? Keychain은 Apple이 제공하는 보안 저장소입니다.사용자 기기 안에 존재하며, 앱이 민감한 데이터를 안전하게 저장할 수 있도록 도와줍니다. 저장할 수 있는 데이터: 토큰, 비밀번호, 인증서 등시스템 전체에서 공유되며, 앱 간에는 App ID나 Access Group에 따라 제한이 있습니다.데이터는 암호화되어 저장되며, 운영체제가 알아서 보호합니다. App ID는 왜 중요한가요? Keychai..
전체 글
데프리프터의 데브리프팅iOS 프레임워크의 모든 것: Static Framework와 Dynamic Framework의 차이와 앱 빌드 전체 과정 정리iOS 앱 개발을 하다 보면 "프레임워크"라는 단어를 자주 접하게 됩니다. 프레임워크는 개발자가 자주 사용하는 코드, UI, 리소스를 묶어둔 재사용 가능한 코드 꾸러미입니다. 이 프레임워크는 앱(App) 안에 붙여서 사용할 수 있으며, 붙이는 방식에 따라 Static Framework(정적 프레임워크) 또는 Dynamic Framework(동적 프레임워크)로 구분됩니다.Static Framework(정적 프레임워크)란?Static Framework는 앱을 빌드할 때 프레임워크의 코드와 리소스를 그대로 앱 안에 복사해서 넣는 방식입니다. 그 결과 앱은 하나의 덩어리 파일로 만들어지..
코드를 보다보면 변수나 함수에private static 을 사용하는 경우가 있습니다.처음 봤을 때는 의미를 바로 느끼기가 힘들어서 찾아보니 생각보다 간단해서 정리하고 갑니다! private를 사용하면 해당 변수 또는 메서드가 클래스에 속하고 인스턴스가 생성되지 않아도 사용할 수 있습니다.또한 정의된 클래스 또는 strusct 내부에서만 접근할 수 있도록 제한합니다. static 은 클래스나 struct가 아닌 타입 자체에 속하는 속성이나 메서드를 정의할 때 사용합니다.이말이 무슨 말인고 하니..static 키워드를 사용하면 해당 속성이나 메서드가 ‘객체(인스턴스) 단위’가 아니라 ‘클래스(타입) 단위’에서 관리된다는 뜻입니다.즉, 인스턴스를 여러 개 만들더라도, static으로 선언된 변수나 메서드는 모..
안녕하세요!오랜만에 돌아온 데브리프터입니다.연말연초 공사가 다망한 관계로 공부했던것들을 정리할 시간이 없었는데, (맨날 공사다망한거 아니냐며..) 새로 시작한 프로젝트가 SwiftUI 를 사용해서 개발을 하다보니UIKit만 사용했던 저로써는 이래저래 많은 벽에 부딪히고 있는 중입니다. 각설하고!오늘은 우리가 SwiftUI 에서 사용하는 다양한 PropertyWrapper 에 대해서정리해 보겠습니다. 바로 들어가보겠습니다! @State@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)State는 SwiftUI 가 관리하는 값을 읽고 쓸 수 있는 Property Wrapper 입니다.App, Scene, View에서 생성됩니다.State는 view ..
안녕하세요 데브리프터 입니다! 회사에서 프로젝트를 진행하면서 여러가지 상황에 따라서 빌드를 모두 다르게 해야하는 상황이 많았습니다.이런 이유로 flag 를 활용한 코드제어에 대한 내용을 이전 글에서 포스팅했습니다. 오늘은 실제로 빌드환경에 따라서 In House 방식으로 배포하기 위해 ipa 파일을생성하는 방법에 대해서 작성해 보겠습니다! 서론 그만하고 시작합니다!! 사용 및 작성 목적SI 프로젝트 중 보안정책이 강한 몇몇 회사는 그 특성상 현장에가서 직접 개발 / 디버깅 / 테스트 하기에 자원이 부족합니다특히 테스트 기간에 여러가지 이슈사항으로 보안테스트 , 배포용 , 개발환경테스트용 등 다양한 환경을 적용해서 빌드파일을 전달해야할 상황이 여러 프로젝트에서 동시다발적으로 생깁니다. 이에 따라서 잘못된..
안녕하세요!주제가 이리저리 튀는 데브리프터입니다.. 클라이언트에 따라서 모의해킹용으로 빌드를 하는데 이때마다 configuration이나여러 가지 보안 세팅 코드들을 수정하고 다시 원래대로 돌려놓아야 하는 굉~~~~~~장히 번거롭고그럼에도 휴먼에러 가능성이 너무 많은 상황이라 이를 조금이라도자동으로 제어할 수 있게 하려고 찾아보다가 flag라는 아이를 처음으로 알게 됐습니다! 근데 이놈이.. 좀 헷갈리고 세팅하는 데서도 좀 애를 먹어서 (한 번만 테스트하고 문서화해놓으면 되는 건데 왜 아직..?)다른 분들도 저처럼 고생하지 말고이것도 되나..?그럼 이런 케이스도..? 하는 부분까지 다 테스트 돌려보고 기록한 거 보시라고 작성했습니다!..그럼 시작하겠습니다!! 먼저 Swift 에는 #을 사용하여 전처리문을..