ios 7

[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 버전

아이폰과 아이패드의 기기별 출시시기와 출시할때 탑재 되었던 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 9 에서 아이폰 무선 디버깅

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

Swift 기초 #01 - 스위프트 언어?

스위프트(Swift) 언어... 뭐 들어본 분도 있을것이고, 처음 듣는 분도 있을 것이고... 하지만 여기까지 찾아 오신걸 보니 처음 듣는 분은 아닐것 같습니다. 스위프트는 2014년 (올해죠?) 애플이 발표한 새로운 프로그래밍 언어입니다. WWDC2014(애플이 매년 개최하는 개발자 컨퍼런스)에서 발표되었죠. 지금까지 MacOS X이나 iOS용 어플리케이션을 개발하려면, 주 사용 언어로 오브젝티브C(Objective C)를 사용해야 했습니다. 정말 오래된 언어이긴 하지만, 최근까지 애플은 현대식 프로그래밍 언어의 기능을 추가해 가며 오브젝티브C를 발전시켜오고 있었죠. 사실, 오브젝티브C를 가지고도 잘 개발해 왔습니다. 그런데 갑자기 왜 애플은 스위프트라는 새로운 언어를 만들었을까요? 잘은 모르겠습니다만..

iOS 버전별 점유을 확인 방법

아마 iOS 개발 하는 분들이나 업체는 iOS 각 버전별 점유율이 얼마나 되는지 궁금할 것입니다. 예전에는 애플에서 직접 매달 점유율이 어느정도 알려 주지 않아서 여러가지 방법으로 유추할 수 있었을 뿐이었습니다. (물론 애플에서도 발표를 합니다만, 애플 행사와 같은 간헐적인 발표라서 답답한 면이 있었죠.) 그러나 최근에는(현재 글을 쓰고 있는 시점에서) 애플 개발자 지원 페이지에서 직접 점유율 확인을 할 수 있더군요. 다만 너무 단순하게만 보여주고 있는 것이 아쉽기는 하네요. 점유율을 볼 수 있는 주소는 https://developer.apple.com/support/appstore/ 입니다. 위 주소로 들어가면, 아래와 같은 화면이 나오는데, 조금 스크롤해 내려가면 좌측에 앱스토어에 특정시기 기준의 점..

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

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