반응형

분류 전체보기 416

[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. 클래스 및 메서드 호출 방..

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

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

[Android] Handler() deprecated

Handler() deprecated 해결 방법 Deprecated 기존에는 Handler()를 선언할 때 생성자에 아무런 값도 넣지 않았지만 현재는 deprecated 되었다. 그 이유는 핸들러 생성 중에 Lopper를 명시하지 않으면 작업이 자동으로 손실, 충돌 등의 버그가 발생할 수 있다고 한다. 공식 문서 내용 https://developer.android.com/reference/android/os/Handler#Handler() Handler | Android Developers developer.android.com 해결 방법 생성자에 Looper.getMainLopper()를 넣어주면 된다. // Handler handler = new Handler(); // deprecated Handl..

[Android] getDrawable() deprecated

getResources().getDrawable deprecated 해결 방법 Deprecated API 22에서 getDrawable() 이 deprecated 되었다. 공식 문서 내용 https://developer.android.com/reference/android/content/res/Resources#getDrawable(int) Resources | Android Developers developer.android.com 해결 방법 아래와 같이 ContextCompat.getDrawable()을 사용한다. // Drawable drawable = getResources().getDrawable(img);// deprecated Drawable drawable = ContextCompat.ge..

반응형