소프트웨어개발/iOS, macOS 와 Xcode 8

[iOS] Xcode 11 과 iOS 13 업데이트 급한 불 끄기 (응급 처치)

iOS 를 개발 할 때에는 새 버전의 OS가 발표 되면 새 OS에 대응하기 위해 Xcode도 그 버전에 맞는 것으로 업데이트 해 줘야 합니다. 몇달 전 출시된 iOS 13 과 Xcode 11 의 경우 기존 프로젝트를 새로 빌드하면 눈에 띄는 것 두가지가 다크모드 (Dark Mode) 에서 UI 색상이 바뀌기도 하고 뷰를 모달 형식으로 띄울 때 뷰의 스타일이 페이지 시트 스타일로 나타나는 것을 볼 수 있습니다. 먼저 뷰를 모달로 띄울 경우 Xcode 11 에서 빌드하여 iOS 13에서 실행시키면, 아래 오른쪽 화면과 같이 페이지 시트 (Page Sheet)형태로 나오게 됩니다. 의도적으로 한 것이 아니라면 원치 않는 모습일 뿐더러 저 형태에서는 뷰를 쓸어 내리면 모달뷰가 사라져 버리므로 원하는 동작도 아닐..

[iOS] Xcode 11 에서 iOS 13 미만 지원 프로젝트 만들기

Xcode 11 로 업데이트 한 후에 새로운 프로젝트를 생성하면, 기본적으로 iOS의 경우 13.x 버전을 타겟으로 하는 프로젝트가 생성됩니다. 일반적으로 호환성을 높이기 위해 어느정도 하위버전으로 타겟을 변경하게 되는데, 이번 Xcode 11은 Xcode 10과 마찬가지로 iOS 8 이상을 지원합니다. 그런데, 문제가 있습니다. 프로젝트를 생성하고 빌드 타겟을 iOS 13 미만으로 설정하였을때, 에러가 발생하며 빌드되지 않는 문제가 있습니다. 구글을 검색해 보니 역시 같은 문제가 있고 해결할 수 있는 몇 가지 방법이 나오네요. 이 글에서는 그 중 파일을 삭제하지 않고 하는 방법을 남겨둡니다. 아래와 같이 SwiftUI가 아닌 Storyboard를 선택하여 프로젝트를 생성하였음에도 불구하고....빌드 타..

[iOS] 아이폰 NFC 읽기 테스트 방법

2017년 WWDC 에서 애플은 아이폰에서 NFC 를 지원하는 프레임웍을 내놓았습니다. 이름하여, Core NFC ... 이름은 거창(?)하지만... NFC 의 모든 기능을 지원하는 것이 아니라, NDEF 타입1~5의 태그를 읽는 것만 오픈하였습니다. 그래서 Core NFC는 iOS 11부터 지원하며, 기대와는 달리 iOS 12 에서도 읽기만 지원하고 있습니다. 또한 사용할 수 있는 기종은 iPhone 7 을 포함, 이후 출시된 아이폰들만 지원합니다. 그런데, 내가 가지고 있는 아이폰이 NFC 가 제대로 작동하는지 어떻게 테스트해 볼 수 있을까요? NDEF 타입1~5의 NFC Tag 데이터를 가진 NFC 카드가 있다면 간단히 테스트 해 볼 수 있습니다. 다만, 제가 가지고 있는 여러 신용카드들, 출입카드..

애플 개발자 계정 이중 인증 (Two-factor authentication) 대응 하기

애플에서 어제 메일이 하나 도착했습니다. 이제 애플 개발자 계정에 이중 인증(Two-factor authentication)을 사용해야 한다는 내용입니다. 저는 보안에 항상 민감하기 때문에 중요한 계정 들은 가능한한 이중 인증을 사용합니다. 개발자 계정을 포함한 애플 아이디 역시 이중 인증을 사용해 왔기 때문에, 그냥 쓰면 되겠구나 생각을 했으나, 애플 개발사 사이트에 접속해 보았더니... (출처 : developer.apple.com) 네, 아니랍니다. 제가 여태까지 쓰고 있었던건 이단계 확인 (Two-Step Authentication)이었고 이중 인증 (Two-factor authentication)은 다른 것이랍니다. 이중 인증을 사용하지 않으면, 이제(2019-2-28기준)는 개발자 페이지에 접..

아이폰 아이패드 기기 출시별 iOS 버전

아이폰과 아이패드의 기기별 출시시기와 출시할때 탑재 되었던 iOS 버전을 정리합니다. 출시 시기는 미국 기준이며, 이 표를 보면, 개발할 앱이나 게임을 어떤 버전 부터 지원할 것인지 판단하는데 도움이 되리라 생각합니다. 또한, 이 표와 XCode에서 지원하는 최소 SDK 버전도 확인해야 합니다. 애플 개발자 사이트에서 버전별 분포표 또한 결정하는데 도움이 될 것입니 2018년 6월 14일 기준 현재 XCode의 최신 버전은 9.4.1이며, 지원하는 최소 iOS SDK는 8.0 입니다. 기준일 : 2018년 6월 14일 iPhone 기기 출시 출시 기기 출시 탑재 OS 버전 최종 지원 OS 버전 2007. 6 iPhone iPhone OS 1.0 iPhone OS 3.1.3 2008. 7 iPhone 3G..

XCode Targets 에서 No Devices 또는 시뮬레이터 리스트가 뜨지 않는 경우

XCode를 사용하다 드물지만 가끔씩 프로젝트를 열면 타겟에 디바이스가 없다거나 시뮬레이터 리스트가 하나도 안뜨는 경우가 있습니다. 또는 iOS 용 프로젝트인데, "My Mac" 하나만 덩그러니 떠 있는 경우가 있습니다. (타겟 디바이스가 없다고 뜬다) (iOS 프로젝트인데 My Mac 하나만 뜬다) 이런 현상이 여러 상황에서 발생할 수 있으나, .xcodeproj 파일의 이름을 변경했을 때 나타나는 경우가 종종 있는것 같습니다. 해결방법을 찾아 구글과 스택오버플로를 검색하여 여러가지를 시도해 본 결과, 실제로 효과 있었던 방법을 기록해 둡니다. 1. 우선 XCode를 종료합니다. 2. 파인더에서 프로젝트 파일(.xcodeproj)을 가르키고 마우스 오른쪽 클릭을 합니다. 3. 팝업 메뉴에서 '패키지 내..

Xcode 9 에서 아이폰 무선 디버깅

여러 기기들로 갈수록 책상이 선으로 복잡해 집니다. 요즘은 무선 키보드, 무선 마우스, 무선 헤드셋, 심지어 무선 충전까지... 무선이 대세인데도 단말기를 USB로 연결해서 개발하는 것은 번거롭기도 하고 걸리적 거리기도 하죠. 수년전에 Xcode에서 무선 디버깅을 지원한 적이 있었습니다. 그러나 무슨 이유에서인지 소리소문 없이 그 기능이 없어졌죠. 그런데, 이번에 Xcode 9이 발표되면서, 다시 무선 디버깅이 지원되었습니다. 그것도 아주 간편한 방법으로 설정이 가능하도록 말이죠. 다만, 제한 사항이 있는데, 당연히 Xcode 9 이상의 버전이 필요하고, 단말기는 iOS 11 이상에서만 지원이 됩니다. 이건 아쉬운 부분인데요, iOS 11 미만의 OS가 설치된 단말기를 연결하면, 무선 연결 항목 자체가 ..

XCode 환경에서 디버그 메시지 출력

XCode로 개발할 때 Output 창으로 디버그 메시지를 출력하기 위해 NSLog를 많이 사용합니다. 하지만, NSLog는 Debug로 빌드 할 때 뿐만 아니라 Release로 빌드 하더라도, 로그 메시지를 출력한다는 단점이 있습니다. 그렇기 때문에 아무래도 불필요한 앱의 성능 저하를 가져오게 됩니다. 간단한 방법을 통해, Debug로 빌드 할 때에만 로그 메시지를 출력하도록 할 수 있습니다. 즉 Release로 빌드 한 후에는 디버그용 메시지를 볼 필요가 없기 때문에, Debug로 빌드 할 때에만 NSLog를 찍어주도록 하는 것이죠.(물론 Debug / Release 빌드 모두 봐야 할 상황도 있습니다.) 그럼 시작해 봅니다. 먼저 XCode를 실행하고, 적용할 프로젝트를 로딩 합니다. 왼쪽 프로젝트..