반응형

분류 전체보기 420

[iOS] Safe Area Top, Bottom 높이 조회 (status bar height)

Safe Area Top과 Bottom 높이 조회하는 방법 Safe Area Top 높이는 Status bar 높이와 동일합니다. Objective-c if (@available(iOS 11.0, *)) { UIWindow *window = UIApplication.sharedApplication.windows.firstObject; CGFloat top = window.safeAreaInsets.top; CGFloat bottom = window.safeAreaInsets.bottom; NSLog(@"top : %f", top); NSLog(@"bottom : %f", bottom); } Swift if #available(iOS 13.0, *) { let window = UIApplication.sh..

[Android] Database 파일명 변경하기 (rename db filename)

Database filename 변경하는 방법 renameTo() 사용하여 변경합니다. File dbFile = getDatabasePath("dbfilename"); boolean result = dbFile.renameTo(new File(getDatabasePath("dbfilename").getParent(), "newdbfilename.db")); Log.d("TAG", "" + result); getDatabasePath() 메서드를 찾을 수 없다면 Context에서 조회해보세요. public static void changeDbFileName(Context context) { File dbFile = context.getDatabasePath("dbfilename"); boolean resu..

[iOS] 인증 토큰 방식 푸시 알림(APNs) 및 키 생성 방법 (p8 파일)

인증 토큰 방식 푸시 알림(APNs) 및 키 생성 방법 iOS에서 푸시 알림을 사용할 수 있는 방법은 2가지가 있습니다. 인증 토큰 사용 방법 인증서 사용 방법 차이점은 아래와 같습니다. - 인증 토큰 방법 인증서 방법 유효기간 없음 1년 환경 개발 및 프로덕션 개발 or 개발 및 프로덕션 (2가지) 사용 앱 모든 앱에서 사용 앱마다 개별 생성 Apple에서 권장하는 방법은 인증 토큰을 사용하는 방법입니다. 인증 토큰 방식은 유효기간이 없으며, 하나의 키만 생성하면 모든 앱에서 사용할 수 있기 때문에 더 간편합니다. 참고사항 키는 생성 후 한 번만 다운로드할 수 있으며, 이후에 다시 다운로드할 수 없습니다. 때문에 키를 다운로드한 후 안전한 곳에 백업해두어야 합니다. 계정 당 APNS 키는 최대 2개만 ..

[Android] 앱 다크 모드 비활성화 방법 (Dark Mode)

안드로이드 앱에서 다크 모드를 비활성화하는 방법 최신 안드로이드 스튜디오에서 프로젝트를 생성하면 다크 모드가 자동으로 지원됩니다. 다크 모드를 지원하지 않으려면 themes.xml 파일을 수정하면 됩니다. themes.xml 파일 위치 AndroidStudio에서 확인 위치 : res\values\themes 파일 탐색기에서 확인 위치 : res\values 또는 res\values-night 수정 방법 themes.xml (night) 파일의 style를 바꿔줍니다. 수정 전 수정 후 수정 후 앱을 빌드해보면 디바이스 다크모드와 상관 없이 Light 모드로 앱이 실행됩니다.

[Swift] 카카오링크 API 구현하기 (카카오톡 메시지 보내기)

iOS Kakao SDK를 사용해 Swift에서 카카오링크 API를 구현하는 방법입니다. 기능 설명 카카오링크 API는 카카오톡 친구에게 카카오톡 메시지를 보내는 기능입니다. 카카오링크 API를 사용해서 카카오톡 친구나 채팅방에 메시지를 공유하는 방법은 크게 두 가지가 있습니다. 카카오링크 API 카카오톡 메시지 API 두 API 차이점은 간략하게 카카오링크 API는 카카오톡에서 알아서 해주기 때문에 비교적 간단하며, 카카오톡 메시지 API는 친구 목록 가져오기 등 직접 구현해야 하는 불편함들이 있습니다. 이 글은 카카오링크 API를 사용해서 공유하는 방법을 설명합니다. 샘플 프로젝트 모두 구현된 샘플 프로젝트는 아래 깃헙 링크에서 확인해주세요. https://github.com/eunsuu1015/Ka..

[iOS] Auto Layout Constraints 코드로 쉽게 변경하기 (NSLayoutConstraint)

iOS Authlayout UI에서 빠질 수 없는 게 Constraints죠 예를 들어 디바이스마다 사이즈를 다르게 적용해야 할 때, 간단하게 사용 가능합니다. 사용 방법 기본 설정 : Test Label의 Top과 Safe Area Top의 Constraint가 50으로 적용되어있습니다. 1. storyboard 또는 xib에서 변경하고 싶은 Constraint를 마우스 우클릭하여 h 파일로 가져오고 Outlet을 연결해줍니다. 2. Type은 NSLayoutConstraint로 연결됩니다. 3. 원하는 값으로 변경 아래 방법으로 원하는 값으로 설정합니다. _topConstraint.constant = 200; _topConstraint.constant = 50; 결과 topConstraint가 50일..

[Objective-c] char* -> NSString, NSString -> char* 변환 방법

Objective-c에서 char* (const char*)와 NSString 간 변환 방법입니다. Unity와 iOS 간 호출할 때 변환해서 사용했습니다. 아래 방법으로 변경해서 보내지 않는 경우, 인코딩이 깨지는 문제가 있었어요 char* -> NSString const char *c = "test"; NSString *s = [NSString stringWithUTF8String:c]; NSString -> char* NSString *s = @"test"; const char *c = [s UTF8String];

[Objective-c] 카카오 로그인 연동 (카카오톡, Kakao Login)

iOS에서 카카오 로그인 연동하는 방법 샘플 프로젝트 모두 구현된 샘플 프로젝트를 미리 실행해보고 싶다면 아래 깃헙 링크에서 확인해주세요. https://github.com/eunsuu1015/KakaoLoginSample GitHub - eunsuu1015/KakaoLoginSample: iOS KakaoLoginSample iOS KakaoLoginSample. Contribute to eunsuu1015/KakaoLoginSample development by creating an account on GitHub. github.com 시작 전 참고사항 Kakao Legacy 1.23.9 버전을 사용했습니다. 최신 버전은 Swift, RxSwift만 지원됩니다. 사전 준비 사항 카카오디벨로퍼스(Kak..

[Xcode] Build error Permission denied 해결 방법

Xcode Build Error Permission denied 해결 방법 Xcode Build 중 Permission denied 에러 발생 Unity Project를 iOS용으로 export 한 후 Xcode에서 Build 시 오류가 발생하였습니다. 발생 에러 /Users/Library/Developer/Xcode/DerivedData/Unity-iPhone-gffhrwzatismvigsjulsctxjpoos/Build/Intermediates.noindex/Unity-iPhone.build/ReleaseForRunning-iphoneos/UnityFramework.build/Script-9D3DC87A221D90AB00B2960B.sh: line 2: /Users/Desktop/workspace/i..

iOS/오류 해결 2021.11.23

[Objective-c] 네이버 로그인 연동 (네아로, Naver Login)

iOS에서 네이버 로그인 연동하는 방법 요구사항 및 자세한 사항은 Naver developers 및 Naver github에 자세히 나와있습니다. 하단 참고 URL에서 확인해주세요. 샘플 프로젝트 모두 구현된 샘플 프로젝트를 미리 실행해보고 싶다면 아래 링크에서 확인해주세요. https://github.com/eunsuu1015/NaverLoginSample GitHub - eunsuu1015/NaverLoginSample: iOS Naver Login Sample iOS Naver Login Sample. Contribute to eunsuu1015/NaverLoginSample development by creating an account on GitHub. github.com 사전 준비 사항 아래 ..

[iOS] [NSBundle ko_appKey:] unrecognized selector sent to class 해결 방법

iOS 카카오 SDK 연동 시 [NSBundle ko_appKey:] unrecognized selector sent to class 에러 해결 방법 발생 에러 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSBundle ko_appKey]: unrecognized selector sent to class 해결 방법 Build Setting 수정 프로젝트 > TARGETS > 앱 > Build Settings > Other Linker Flags에 -all_load 추가 ※ 아래 이미지에서 카카오 SDK를 Framework에서 사용하기 때문에 Framework에서 설정한 것이며, 일반 앱은 TARGET..

[Swift / Obejctive-c] 클립보드 복사/붙여넣기 (UIPasteboard)

iOS에서 클립보드에 값을 복사하는 방법과, 클립보드에 있는 값을 가져오는 방법 Swift // 클립보드에 값 복사하기 UIPasteboard.general.string = "some string" // 클립보드 값 가져오기 if let someString = UIPasteboard.general.string { // someString } Objective-c // 클립보드에 값 복사하기 [[UIPasteboard generalPasteboard] setString:@"some string"]; // 클립보드에 값 가져하기 NSString *someString = [[UIPasteboard generalPasteboard] string];

[iOS] Xcode adding space in App Name (앱 명 띄어쓰기 안 될 때)

Adding space in app name Xcode에서 앱 명 띄어쓰기가 안될 때 해결 방법 일반적으로 앱 명을 변경할 때는 아래 방법으로 변경합니다. TARGETS - General - Identity에서 Display Name 변경 Info.plist 에서 Bundle name 변경 그런데 간혹 띄어쓰기가 적용 안 되는 경우가 있죠. 또는 앱 명이 길어서 OS에서 자동으로 띄어쓰기를 없애버리는 경우도 있습니다. 이럴 때는 아래와 같은 방법으로 진행하면 됩니다. 해결방법 1. Info.plist를 Source Code로 열기 Info.plist 우클릭 > Open As > Source Code 선택 2. CFBundleName에 띄어쓰기 대신 를 입력 3. 앱 실행하여 확인하기 수정 전: 띄어쓰기 ..

[Swift / Objective-c] UITableView 셀 구분선 없애는 방법 (separatorStyle)

UITableView 셀 구분선 없애는 방법 Separator: UITableView 셀과 셀 사이에 있는 구분선 viewDidLoad에서 설정해주면 됩니다. Swift tableView.separatorStyle = .none Objective-c tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 참고사항 Inspector 창에서도 가능합니다. Attribution Inspector > Separator 스타일 및 색상 설정 가능

[iOS] CSR(인증서 서명 요청) 생성 방법 (Certificate Signing Request)

Mac에서 CSR(인증서 서명 요청) 생성 방법 CSR이란? Certificate Signing Request : 인증서 서명 요청 인증서 발급을 위한 정보를 담고 있는 파일 CSR 생성 방법 1. 키체인 접근 실행 2. 상단 키체인 접근 > 인증서 지원 > 인증 기관에서 인증서 요청 선택 3. 인증서 정보 입력 해당 csr을 넣어 만든 인증서를 키체인에 등록하면 일반 이름에 입력한 값이 개인키 부분에 표시됩니다. (abc) CA 이메일 주소는 입력하지 않아도 됩니다. 요청 항목은 디스크에 저장됨을 선택해야 Mac에 csr 파일로 저장됩니다. 4. csr 파일명 입력 5. 완료 참고사항 생성된 csr을 더블클릭하면 생성 시 입력한 정보를 확인할 수 있다. 일반 이름(사용자 이메일 주소) 참고 URL ht..

[iOS] 기업용 앱 신뢰 설정 (신뢰할 수 없는 기업용 개발자)

iOS 기업용 앱 신뢰 설정 방법 기업용 앱(기업에서 배포한 앱) 설치 후, 실행을 위해 신뢰를 설정해야 앱 사용이 가능하다. 문제 신뢰하지 않은 경우는 아래 알림이 뜨면서 앱 실행이 불가능하다. 신뢰 설정 방법 신뢰 설정은 앱에서 가능하다. 1. 설정 앱에서 일반 선택 2. 아래로 내려 기기 관리 선택 3. 신뢰할 기업 선택 4. '기업'을(를) 신뢰함 선택 신뢰하기 전에는 '개발자를 신뢰하기 전에는 실행되지 않습니다.'라고 표시된다. 5. 신뢰 선택 6. 신뢰 완료 신뢰가 완료되면 '앱을 신뢰합니다.'라고 표시된다.

[Objecitve-c] Category(카테고리) 사용 방법

iOS Category(카테고리) 사용 방법 Category란? 기존에 정의된 클래스를 쉽게 확장할 수 있게 해주는 기능 사용 방법 1. 카테고리로 확장할 클래스 생성 1-1. Xcode File > New > File > Cocoa Touch Class 선택 1-2. 네이밍 규칙 Class 파일명은 확장할 클래스 이름+카테고리명으로 지정해야 한다. 아래 사진에서는 NSString+Test 로 지정했다. 1-3. 생성된 파일 // NSString+Test.h #import @interface NSString_Test : NSObject @end // NSString+Test.m #import "NSString+Test.h" @implementation NSString_Test @end 1-4. 생성된 ..

[iOS] TextField, TextView 키보드에 가려지는 현상 해결, 포커스 이동 (IQKeyboardManager)

TextField, TextView 키보드에 가려지는 현상 해결 방법 TextField, TextView 포커스 위아래로 이동하는 방법 화면 하단에 있는 TextField 또는 TextView에 값을 입력하는 경우, 키보드에 가려져 입력한 값이 가려지는 현상 키보드 상단에 포커스 이동하는 버튼을 두고 싶은 경우 모두 아래 라이브러리로 쉽게 해결이 가능합니다. IQKeyboardManager https://github.com/hackiftekhar/IQKeyboardManager 지원 언어 Objective-c Swift 설치 방법 CocoaPods 또는 Carthage로 설치 (Carthage로 설치 방법은 위 github 링크에서 확인해주세요.) CocoaPods으로 설치 방법 // Podfile //..

[iOS] framework 생성 및 사용 방법 (2 - 사용 방법)

iOS framework(프레임워크) 생성 및 사용 방법 ※ 해당 글에서는 objective-c로 설명하지만 swift도 거의 동일합니다. ※ 내용이 길어 두 개의 포스팅으로 나눴습니다. 해당 글에서는 framework 사용 방법을 설명합니다. 이전 포스팅 : https://es1015.tistory.com/433 목차 - framework 생성 방법 1. debug framework 생성 방법 2. release framework 생성 방법 - framework 생성 시 참고 사항 - framework 사용 방법 1. framework 파일을 추가하는 방법 - framework 파일 필요 2. framework 프로젝트를 추가하는 방법 - framework 프로젝트 필요 3. 클래스 및 메서드 호출 방..

반응형