반응형

iOS 126

[iOS] ERROR ITMS-90339: UIApplicationExitsOnSuspend Error 해결 방법

App Store 배포 시, 아래와 같은 오류가 발생했다. 오류 App Store Connect Operation Error ERROR ITMS-90339: "This bundle is invalid. The Info.plist contains an invalid key 'UIApplicationExitsOnSuspend' in bundle App [App.app]" 오류 내용: Info.plist에 포함된 UIApplicationExitsOnSuspend 키가 deprecated 되어 사용 불가 참고 URL: developer.apple.com/documentation/ Xcode에서 info.plist 파일을 보면 아래와 같은 키를 확인할 수 있다. Info.plist - Property List에서..

iOS/오류 해결 2021.04.04

[objective-c] OS 잠금 활성화 여부 조회 (암호, Touch ID(Face ID)

아이폰 OS 잠금 활성화 여부 조회하는 방법 아이폰 OS 암호 및 생체인증(Touch ID 및 Face ID)이 등록되어있는지 조회하는 방법이다. OS 잠금 활성화 여부 조회 시 헷갈리는 부분이 많으니 참고 사항을 꼭 읽어보길 바란다. 알고 나면 간단한 내용이지만, 아이폰을 사용하면서 가볍게 넘어갔다면 모를만한 내용이다. OS 잠금 활성화란, OS 암호가 설정되어 있으며 사용이 가능한 상태를 말한다. 참고 사항 아이폰에서 암호는 기본 사항이고, 생체인증은 선택 사항이다. 암호와 생체인증이 모두 등록되지 않은 상태에서 'Touch ID(Face ID) 및 암호' 메뉴 진입하여 1) '암호 켜기'를 하면 암호 등록이 가능하다. 2) 하지만 '지문(Face) 추가...'를 하면 생체인증 추가 후 암호까지 등록..

[Mac] Xcode 빠르게 설치하기 (AppStore 다운로드 실패 해결)

Mac에서 Xcode를 설치하는 가장 기본적인 방법은 AppStore를 통해서 다운로드하는 방법이다. 하지만 이 방법은 시간도 엄청 오래 걸리고, 도중에 멈추거나 실패하는 경우가 많다. 가령 아래와 같이 AppStore에서 봤을 때, 분명 다운로드 중이라고 표시되어있는데 몇시간 동안 제자리인 경우. 또는 Launcher에서 아래처럼 표시되고 몇시간 동안 제자리인 경우 등등. (스트레스;) AppStore에서 다운로드 받는다운로드하는 방법 외에 더 쉽고 빠르고 확실하게 다운로드하는 방법이 있다! 그 방법은 바로 Apple 개발자 페이지에서 xip를 직접 다운로드하여 설치하는 방법이다. 추가로, 과거 버전의 Xcode도 다운로드 가능하다. 설치 방법 1. developer.apple.com/download/..

iOS/기타 2021.03.07

[Swift] 앱스토어 링크 열기 (App Store Link)

앱 업데이트 또는 리뷰 작성 등을 위해 앱에서 앱스토어 링크로 이동시켜야 하는 경우 사용한다. appId는 App Store Connect에서 확인할 수 있다. 1. App Store Connect 접속 appstoreconnect.apple.com https://appstoreconnect.apple.com/login?targetUrl=%2Fapps&authResult=FAILED appstoreconnect.apple.com 2. 나의 앱에서 앱 선택 3. 일반 정보 > 앱 정보 > Apple Id 확인 Apple Id는 숫자로 이루어짐 샘플 class func openAppStore(appId: String) { let url = "itms-apps://itunes.apple.com/app/" + ..

[iOS] App Store Connect 입력한 주소가 유효하지 않습니다. 해결 방법

App Store Connect에서 계약, 세금 및 금융거래 메뉴에서 유료 앱 법인 정보 편집 시, '입력한 주소가 유효하지 않습니다. 주소를 수정한 다음 다시 제출하십시오.' 에러가 발생했다. 분명, 올바른 주소를 입력했는데도 에러가 발생했다. 그래서 검색해보니 애플에서 발생하는 오류인 듯한다. 해결 방법 입력 칸에 올바른 정보가 들어갔는지 확인한다. 주소 첫 번째 칸에 모든 주소를 영문으로 입력한다. 영문 주소를 모를 경우, 네이버에서 영문 주소를 검색하면 바로 검색이 가능하다. 예를 들어 홍대입구역의 주소인 '서울특별시 마포구 양화로 160'을 검색하면 결과로 '160, Yanghwa-ro, Mapo-gu, Seoul, Republic of Korea'와 우편번호 04050이 검색된다. 주소 첫 번..

iOS/오류 해결 2020.12.30

[iOS] WKWebView 자바스크립트 window.open, window.close 이벤트

WKWebView에서 window.open(), window.close()이 호출된 경우 아래 메서드로 처리가 가능하다. 자바스크립트의 위 이벤트들을 받기 위해서는 WKNavigationDelegate, WKUIDelegate 프로토콜을 선언해야 한다. @interface ViewController () { } [wkWebView setUIDelegate:self]; [wkWebView setNavigationDelegate:self]; 팝업이 열리는 경우 (window.open 또는 target="_blank") 이 경우 일반적으로 canOpenURL if문 안에서 새로운 팝업 웹뷰를 생성하여 그 웹뷰를 리턴하여 화면을 팝업 화면을 출력한다. 별도 팝업이나 처리가 필요하지 않은 경우는 nil을 리턴하면..

[iOS] App Store Connect Operation Error 해결방법

iOS Archive 후 App Store에 Upload 시 아래와 같은 오류가 발생할 수 있다. App Store Connect Operation Error No suitable application records were found. Verify your bundle identifier 'bundle' is correct. 해결방법 1. bundle identifier에 대문자가 들어가 있는지 확인한다. -> 들어가 있다면 소문자로 변경해준다. 2. App Store Connect에 앱을 추가했는지 확인한다. -> 추가하지 않았다면 추가 후 시도한다. -> App Store Connect 링크: appstoreconnect.apple.com/

iOS/오류 해결 2020.12.13

[iOS] Content and frame layout guides before iOS 11.0 에러 해결 방법

iOS Content and frame layout guides before iOS 11.0 에러가 나는 경우 UIScrollView가 원인이다. 해당 에러가 발생하는 storyboard 또는 xib 파일을 열어 ScrollView 부분을 확인한다. ScrollView를 보면 Content Layout Guide와 Frame Layout Guide가 있는 것을 확인할 수 있다. Size inspector를 확인해보면 Content Layout Guides가 체크되어있다. 체크를 해제한다. 체크를 해제하고 나면 Content Layout Guide와 Frame Layout Guide가 사라진 것을 확인할 수 있다. 이제 정상적으로 빌드되는 것을 확인할 수 있다.

iOS/오류 해결 2020.12.11

[iOS] WKWebView 기본 사용법 (프로젝트 내 html파일 출력)

WKWebView 기본 사용법 프로젝트 폴더에 있는 html 파일을 WKWebView에 표시하는 예제이다. 스토리보드에서 WKWebView를 추가하려면 iOS11 이상부터 가능하기 때문에 직접 추가하지 않는다. 스토리보드에서 웹뷰를 출력할 영역에 UIView를 추가하고 구현 파일에서 UIView 영역에 맞춰 WKWebView를 생성하는 방법으로 진행한다. 사용 방법 1. WebKet 추가 1) TARGETS > General > Frameworks, Libraries, and Embedded Content에서 추가 2) 헤더 파일 또는 구현 파일에서 추가 아래와 같이 WebKit.h를 import 한다 // ViewController.m #import * 테스트해보니 1번 과정 없이 2번만 진행해도 문제..

[Swift] 기본 데이터 타입 (Character, String, Int, UInt, Float, Double, Bool, Any, AnyObject)

스위프트에서 사용하는 기본 데이터 타입에 대해 알아보겠습니다. 데이터 타입이란? 프로그램 내에서 다뤄지는 데이터의 종류 데이터 타입 특징 - 구조체 타입 기반으로 구현됨 - 대문자 카멜 케이스를 사용 Character - 하나의 문자 - 유니코드 9 문자 사용 (알파벳, 숫자, 한글, 특수문자 사용 가능) - 큰따옴표를 사용 let alpabel: Character = "A" let number: Character = "1" let korean: Character = "ㄱ" let special: Character = "☆" String - 문자열 - 유니코드9 문자 사용 (알파벳, 숫자, 한글, 특수문자 사용 가능) - 큰따옴표 사용 - 멀티라인 사용 시 큰따옴표 세 개 사용 // 상수로 문자열 선언 ..

iOS/개념 2020.11.07

[Swift] 변수(variable)와 상수(caontant) (+상수 사용 이유)

Swift 변수(variable)와 상수(constant) 변수 (variable) 변경 가능한 데이터(값) 키워드 var var [변수명]: [데이터 타입] = [값] ※ 데이터 타입은 생략이 가능하다. (타입추론) 단, 잘못 사용된 타입 추론은 오류가 발생했을 때 해결하기 어려울 수 있으므로 조심히 사용해야한다. - 사용 방법1. 변수를 생성하며 값을 할당 var name: String = "이름" var age: Int = 25 var height: Float = 170.5 age = 26 // 여러 번 값 지정 가능 age = 27 // 여러 번 값 지정 가능 - 사용 방법2.변수를 생성하고 나중에 값을 할당 var name: String var age: Int var height: Float n..

iOS/개념 2020.11.03

[Swift] 주석

주석이란? 프로그래밍에 있어 소스코드에 정보나 내용을 메모를 남기는 목적으로 사용 한 줄 주석 // 한 줄 주석은 // 를 사용 여러 줄 주석 /* 여러 줄 주석은 슬래시와 별표를 사용 시작은 슬래시와 별표, 종료는 별표와 슬래시 사용 */ /* 여러 줄이 아닌 한 줄도 사용 가능 */ 중첩 주석 Swift는 중첩 주석을 지원 /* Swift는 중첩 주석을 지원함 /* 대부분의 프로그래밍 언어는 중첩 주석을 지원하지 않음 // 여러 중첩 모두 가능 */ */ 마크업 문법 변수, 함수, 메서드, 타입 등 작성 후 마크업 문법에 맞춰 주석을 작성하면, 퀵헬프 기능을 사용할 수 있다. 단축키: option(⌥) + command(⌘) + / add 함수 추가 후 단축키를 눌러 주석을 추가한 경우 아래처럼 표시..

iOS/개념 2020.11.02

[Swift] 기본 명명 규칙

Swift 기본 명명 규칙 클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이기 때문에 대문자 카멜케이스 사용 함수, 메서드, 인스턴스 이름은 소문자 카멜케이스 사용 대소문자 구별 변수, 함수, 타입 등의 이름은 모든 문자를 지원하지만 아래 경우와 같은 예외 케이스가 있음 - 스위프트에서 미리 정한 예약어 또는 키워드 명령 구문 뒤에 세미콜론(;) 붙이는 것은 선택 사항이나 안 붙이길 권함 일부 예약어의 경우 강세표(backquote, ')를 사용하여 이름으로 사용 가능

iOS/개념 2020.11.02

[Swift] log에 date, file name, function name, line 쉽게 출력하는 방법

Swift에서 콘솔창에 로그 쉽게 출력하는 방법이다. 보통 로그에 날짜, 파일명, 메소드명, 라인을 작성하려면 아래와 같이 작성해야한다. 1 print("\(Date()) \(#file.components(separatedBy: "/").last ?? "") \(#function) \(#line) 로그 내용") cs Date() : 날짜 출력 #file : 파일 출력. #file만 사용 시 파일이 있는 디렉터리가 모두 출력되기 때문에 components(separateBy:) 필수 #fuction : 메소드명 #line : 라인 출력 위와같이 작성하면 콘솔창에 이렇게 출력된다. #file만 사용 시 2020-10-11 16:31:33 +0000 /Users/dev/Desktop/workspace/ios/..

[iOS] Xcode 주석으로 자동 개발 문서 만드는 방법 (jazzy)

작성한 주석을 사용해서 자동으로 개발 문서를 만들어주는 jazzy라는 방법을 소개합니다. swift와 objective-c 모두 지원하며 swift는 비교적 간단하고, objective-c는 조금 귀찮은 작업이 필요합니다. objective-c 사용법으로 여러가지 방법이 있는데 그 중 가장 간단한 방법을 사용했습니다. 참고) jazzy github 주소 https://github.com/realm/jazzy realm/jazzy Soulful docs for Swift & Objective-C. Contribute to realm/jazzy development by creating an account on GitHub. github.com 0. 주석 추가 jazzy는 마크업 문법 형식에 따라 입력한 주..

[iOS] 엔터프라이즈 배포 (내부 배포용 enterprise)

내부 배포용 엔터프라이즈 배포 방법 앱스토어에 배포하려 하였으나 정책 등으로 인해 배포가 불가능한 경우, 엔터프라이즈 방식으로 배포가 가능하다. (단, 엔터프라이즈 계정 필요) 1. Xcode에서 Archive 진행 후 오른쪽 Distribute App 선택 2. Enterprise 선택 후 Next 선택 3. All compatible device variants 선택 및 Additional Options 체크 후 Next 선택 manifest 파일이 있어야 배포할 수 있다. 4. 3개의 URL에 아무 값이나 입력 후 Next 선택 App, Image URL을 입력해야 하지만, 어차피 나중에 수정하므로 지금은 아무 URL이나 입력해도 된다. 5. 배포용 인증서와 In House용 프로비저닝 프로파일을 ..

반응형