IOS

    SPM으로 설치한 Crashlytics에서 누락된 dsyms 업로드하기

    SPM으로 설치한 Crashlytics에서 누락된 dsyms 업로드하기

    1. Firebase SDK를 클론해준다. 그리고 클론받은 폴더 내부의 Crashlytics 폴더로 이동해서 pwd 실행후 upload-symbols의 경로를 복사해둔다. git clone https://github.com/firebase/firebase-ios-sdk.git cd firebase-ios-sdk/Crashlytics pwd 2. Archives 폴더로 이동해서 원하는 아카이브로 가서 dSYMs 폴더가 있는 경로를 복사해둔다. cd /Users//Library/Developer/Xcode/Archives//.xcarchive/dSYMs 3. GoogleService-Info.plist 파일이 있는 프로젝트 경로를 복사해둔다. 3. 위의 경로들을 아래의 코드처럼 결합해서 실행해준다. /Use..

    iOS | 샌드박스와 File System

    iOS | 샌드박스와 File System

    Sandbox 샌드박스는 어린 아이를 보호하기 위해 샌드박스에서만 놀도록 하는데 유래한 보안 모델입니다. iOS에서 앱 샌드박스는 커널 수준에서 앱의 데이터에 대한 접근을 제한하는 기술입니다. 앱 샌드박스가 있는 이유는? 앱이 손상되었을 때 사용자의 데이터나 시스템이 위험하지 않지 않도록 하는 역할을 합니다. 보안을 위해서 앱을 설치할 때 운영 체제는 자동으로 해당 앱에 대한 샌드박스를 만듭니다. 샌드박스가 없을 경우(왼쪽)에는 해당 앱에 보안 허점이 있을 때 공격자는 앱을 제어해서 시스템 리소스나 모든 데이터를 가지고 이것 저것 할 수 있겠죠 그래서 오른쪽과 같이 하나의 앱에 하나의 샌드박스를 만들어서 앱이 손상될 경우 시스템 및 사용자 데이터에 대한 손상을 방지하도록 설계되어 있습니다. 샌드박스 전략..

    iOS | Authorization & Privacy, CoreLocation, 위치로 주소 변환하기

    iOS | Authorization & Privacy, CoreLocation, 위치로 주소 변환하기

    Overview 애플의 플랫폼내에서는 사용자의 개인 정보를 굉장히! 중요하게 다룬다는 느낌을 받을 수 있습니다. 여담이지만 FBI가 애플에게 아이폰 암호해제를 요청했는데 사용자들의 프라이버시를 위해 해주지 않았다는 일화도 있죠... Human Interface Guidelines에선 필요한 개인정보와 관련된 데이터와 리소스, 사용방법을 투명하게 공개해서 사용자와의 신뢰를 구축하는 것이 중요하다고 말하고 있습니다. 따라서 다음과 같은 데이터나 리소스를 사용할 때 액세스 권한을 요청해야 합니다. 위치, 건강, 재정, 연락처 및 기타 개인 식별 정보를 포함한 Personal data 이메일, 메시지, 캘린더, 연락처, 게임 플레이 정보, Apple Music 활동, HomeKit 데이터, 오디오, 비디오, 사..

    iOS ) Autolayout3 - Adaptive Layout, Size Class

    iOS ) Autolayout3 - Adaptive Layout, Size Class

    Adaptive Layout iOS는 다양한 종류의 기기가 있고, 사용자는 세로 화면, 가로 화면, 아이패드의 스릿 뷰, 멀티태스킹 등을 통해 앱을 사용할 수 있습니다. 그런 다양한 화면에 대응할 수 있는 Adaptive Layout 대해서 알아보도록 해요. Size class Trait collection Adaptive Layout에서 알아야할 핵심적인 두가지의 개념입니다. Size Class 사이즈 클래스에서는 iOS 기기를 사용해 나타낼 수 있는 다양한 화면 영역을 분류하고 인터페이스의 너비, 높이를 Compact class, Regular class 두 가지로 나누어 표현합니다. Regular Class - interface의 너비 혹은 높이가 비교적 크다 Compact Class - inter..

    iOS ) AutoLayout2 - Content Hugging, Compression Resistance

    iOS ) AutoLayout2 - Content Hugging, Compression Resistance

    Frame-based layout: 특정 뷰의 위치와 크기 지정 Auto resizing Mask Auto Layout: View의 위치와 크기를 다른 뷰와의 관계(제약)으로 지정 Adaptive Layout Auto Layout Size Class: 뷰의 높이와 너비를 설명하는 크기 Trait Collection: iOS가 실행되는 환경의 다양성 Universal Storyboard Autolayout Autoresizing mask로 Frame-based layout의 단점을 완화할 수 있지만 여전히 언어별로 다른 글자 수나, 뉴스 앱과 같은 개별 뉴스 기사의 크기에 따른 레이아웃 조정과 같은 것에는 대응할 수 없습니다. 왜냐면.. 뷰의 위치나 크기가 고정되어 있기 때문이죠 ㅠㅠ 그래서 나온 게 Au..

    iOS ) AutoLayout1 - Frame-based Layout Autoresizing Mask

    iOS ) AutoLayout1 - Frame-based Layout Autoresizing Mask

    자동 레이아웃 크기 등급 특성 수집 유니버설 스토리보드 Loading 이번 포스팅에서는 오토레이아웃에 대해서 알아보도록 하겠습니다. 아이폰의 변천사를 살펴보면 위의 사진처럼 아이폰은 4S까지 3.54의 인치의 귀여운 사이즈의 액정을 유지했었는데요. 이때까지만 해도 다양한 크기를 가진 갤럭시 기기와 달리 아이폰은 고정된 크기를 가지고 있었기 때문에 개발자들은 화면에 컨텐츠를 표시할 때 디바이스의 크기를 고려할 필요가 없었습니다. 하지만... 사진출처: https://7178.tistory.com/90 2012년 9월 12일에 발표된 여섯 번째 아이폰! iPhone 5는 4인치로 위아래로 조금 늘어난 액정크기를 가지게 됩니다. 사용자는 좋아졌지만 우리 개발자들은 눈물을 흘리게 됐죠.... 하지만 제가 이때의..