반응형

ios 104

[iOS] ipa 파일로 프로비저닝 프로파일 확인하기

ipa 파일에 포함된 프로비저닝 프로파일 확인하는 방법은 아래와 같다. 준비물 ipa 파일 mac 확인 방법 1. ipa 파일 우클릭 > 다음으로 열기 > 아카이브 유틸리티로 열기 '다음으로 열기'에서 '아카이브 유틸리티'가 없는 경우: '기타...'를 선택하고 검색 화면이 나오면 '아카이브'를 검색해서 열기 진행 2. Payload 폴더 생성됨 3. Payload 폴더 내 앱 아이콘 우클릭하여 '패키지 내용 보기' 선택 4. embedded 이름의 프로비저닝 프로파일 확인 (embedded.mobileprovision)

[Swift / Objective-c] 카메라 권한 허용 상태 조회 및 요청

카메라 권한 허용 상태 조회 및 요청 방법 Info.plist에 Camera 권한 추가 및 AVFoundation import 하여 사용 필수사항 Info.plist에 Privacy - Camera Usage Description 추가 NSCameraUsageDescription 앱 기능을 사용하려면 카메라 권한이 필요합니다. 샘플 Swift import AVFoundation let status = AVCaptureDevice.authorizationStatus(for: AVMediaType.video) switch status { case .notDetermined: print("권한 요청 전 상태") // 권한 요청 AVCaptureDevice.requestAccess(for: .video) { g..

[iOS] 앱 서명 인증서? 생성, 내보내기 및 삭제 (signing certification)

앱 서명이란? (What is app signing?) 디바이스에 앱을 실행하고 앱 서비스를 사용하거나, 지정된 디바이스에서 테스트하거나 앱스토어에 제출하기 위해 꼭 필요한 과정 Xcode는 앱을 build 하고 archive 하는 과정에서 서명을 진행 계정 당 생성할 수 있는 인증서 개수가 제한됨 팀의 다른 사람과 공유하려면 서명 인증서를 내보내기 한 후, 다른 사람의 Mac에서 내보낸 파일을 두 번 클릭하여 키체인에 서명 인증서를 설치 계정 당 생성할 수 있는 인증서 개수 Type Apple Developer Program Enterprise Apple Development 2 2 Apple Distribution 3 2 주요 인증서 종류 Apple Development iOS, tvOS, watch..

[Xcode] Build error fat framework 에러 해결 방법

Xcode Build 시 아래와 같은 오류 발생 시 해결 방법 오류 Building for iOS, but the linked and embedded framework 'framework_name.framework' was built for iOS + iOS Simulator. 해당 오류는 framework가 iOS 실물 기기와 시뮬레이터를 모두 동작하게 하는 아키텍처를 지원하는 fat framework기 때문에 발생합니다. 해결방법 방법 1. .xcframework 파일 생성 방법 2. TARGETS > Project Name > Build Setting > Build Options > Validate Workspace를 Yes 설정 참고사항 본인은 소스코드를 전달받았을 때 해당 에러가 발생했습니다. ..

iOS/오류 해결 2021.08.23

[Swift / Objective-c] 자동 잠금 활성화/비활성화 (절전모드)

자동 잠금(절전모드) 상태 활성화/비활성화 처리하기 절전모드를 비활성화시키면 화면이 자동으로 잠금 되지 않음 참고 URL: https://developer.apple.com/documentation/uikit/uiapplication/1623070-idletimerdisabled Swift // 자동 잠금 비활성화 UIApplication.shared.isIdleTimerDisabled = true // 자동 잠금 활성화 UIApplication.shared.isIdleTimerDisabled = false Objective-c // 자동 잠금 비활성화 [UIApplication sharedApplication].idleTimerDisabled = YES; // 자동 잠금 활성화 [UIApplicatio..

[objective-c] Hex Color를 UIColor로 변환하기 (Hex to UIColor)

Hex 컬러를 UIColor로 변환하는 방법 Utils.m +(UIColor *)colorWithRGBHex:(NSUInteger)RGBHex alpha:(CGFloat)alpha { CGFloat red = ((CGFloat)((RGBHex & 0xFF0000) >> 16)) / 255.0f; CGFloat green = ((CGFloat)((RGBHex & 0xFF00) >> 8)) / 255.0f; CGFloat blue = ((CGFloat)((RGBHex & 0xFF))) / 255.0f; return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } 사용 방법 UIColor* color = [Utils colorWithREGHex..

[objective-c] UIView 그라데이션 넣기 (CAGradientLayer)

UIView에 gradient 넣는 방법 일반적으로 두 가지 색상으로 가로 또는 세로 그라데이션을 넣는 방법이다. 가로 그라데이션과 세로 그라데이션 적용 방법 Utils.m +(void)setVerticalGradient:(id)viewId topColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor { [self setGradient:viewId isVertical:YES firstColor:topColor secondColor:bottomColor]; } +(void)setHorizontalGradient:(id)viewId leftColor:(UIColor*)leftColor rightColor:(UIColor*)rightColor { [self s..

[Swift] dispatch async 사용법 (asyncAfter)

UI 변경 작업 등은 메인 스레드에서 진행을 해야 한다. 그럴 때 사용할 수 있는 것이 dispatch async이다. 일반적인 사용법 DispatchQueue.main.async { // code } 그리고 일정 시간 이후에 진행할 부분이 있다면 dispatchAfter를 사용한다. deadline은 시간을 설정하는 부분이며 .seconds를 사용해 초 단위로 시간 설정이 가능하다. 1 = 1초 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + .seconds(1)) { // code }

[objective-c] 프로토콜 구현 여부 체크 (Protocol)

프로토콜 구현 여부 체크 TestProtocol @protocol TestProtocol -(void)test; -(void)test1:(NSString*)str; -(void)test2:(NSString*)str str2: (NSString *)str2; -(void)test3:(NSString*)str str2: (NSString *)str2 str3:(NSString*)str3; @end 프로토콜 구현 여부 체크 respondsToSelector를 사용하여 프로토콜 구현 여부를 체크할 수 있다. _testProtocol이 nil인 경우, @selector에 있는 함수가 구현되지 않은 경우는 else 구문을 탄다. if ([_testProtocol respondsToSelector:@selector(..

[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) 추가...'를 하면 생체인증 추가 후 암호까지 등록..

[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, Android] 사이즈별 앱 아이콘 생성 makeappicon (icon generator)

iOS 또는 Android 앱 개발 시 앱 아이콘이 사이즈별로 필요하다. 이때 큰 사이즈의 아이콘 이미지 1개만 있으면 운영체제에 맞게 사이즈별로 만들어주는 좋은 사이트가 있다. iOS는 사이즈별로 1024x1024, 40x40 등등 모든 사이즈에 맞춰 만들어주고 Android도 사이즈별로 hdpi, xxxhdpi 등 사이즈에 맞춰서 만들어준다. 사용 방법 1. 사이트 접속 makeappicon.com/ Developer Tool - App Icon Resizer MakeAppIcon is an app icon resizer that helps developers and project managers generate the app icons required by App Store & Google Play..

IT/팁 2020.12.12
반응형