반응형

ios 104

[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] 기본 명명 규칙

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용 프로비저닝 프로파일을 ..

[iOS] Adhoc 용 IPA 생성 및 배포

Ad Hoc용 IPA 생성법 Ad Hoc 참고사항 한정된 인원의 사용자에게 내부 배포 또는 테스트 용으로 사용 iPhone, iPad, iPod touch, Apple Watch, Apple TV 각 100대씩 설정 가능하며, 멤버십 갱신 1년 기준 1. 프로비저닝 프로파일 생성 (Provisioning Profiles) 1-1. Apple Developer 에서 Profiles 선택 url : https://developer.apple.com/account/resources/profiles/list 1-2. + 선택 (프로파일 추가) 1-3. 목적에 따라 종류를 선택한다 iOS App Development : 개발용 Ad Hoc : 내부 배포용 AppStore : AppStore 업로드용 Develop..

[iOS] Push Notification (APNS) example

Push Notification (APNS) example 1. 앱에 푸시 추가 프로젝트 > TARGETS > Signing & Capabilities 에서 왼쪽 상단에 + Capability 선택 > Push Notifications 선택 > Background Modes 선택 > Remote notification 체크 2. 푸시 왔을 때 처리 코드 AppDelegate.h - UserNotifications import - UNUserNotificationCenterDelegate 추가 #import #import @interface AppDelegate : UIResponder AppDelegate.m - registerForRemoteNotifications PUSH 등록 - applicatio..

[iOS] 프레임워크 시뮬레이터 아키텍처 삭제 (platform doesn't have any non-simulator SDKs)

ios IPA 생성 시 아래와 같은 오류가 발생했다. IPA processing failed (해당 문제는 App Store Connect, Enterprise 시 발생하는듯?) 로그 파일로 자세히 보니 아래와 같은 오류가 있었다. Configuration issue: platform AppleTVSimulator.platform doesn't have any non-simulator SDKs; ignoring it Configuration issue: platform WatchSimulator.platform doesn't have any non-simulator SDKs; ignoring it Configuration issue: platform iPhoneSimulator.platform doesn..

[iOS] status bar height 구하기 (상태바 높이 구하기)

[iOS] status bar height 구하기 (상태바 높이 구하기) 아이폰의 status bar 높이를 보통 20으로 처리하는데,해상도에 따라 다른 값을 가지고 있어서동적으로 값을 가져와서 처리하는 방법이 정확하다. 아래 코드로 상태바 높이를 가져올 수 있다. -(CGFloat)statusBarHeight { CGRect statusBarRect = [[UIApplication sharedApplication] statusBarFrame]; return statusBarRect.size.height; }

[ios xcode] error: linker command failed with exit code 1

[ios xcode] error : linker command failed with exit code 1 Xcode 빌드 시 error: linker command failed with exit code 1 에러 초반엔 프레임워크 링크가 깨진건가 했는데, 에러 메시지 바로 위에 출력해주는 파일의 링크가 깨지는 원인이 대부분인것 같다. 경험상 그 파일을 검색해봤을 때 1. 없거나 2. 중복되서 있거나(두번 추가된 경우가 있음) 3. 프로젝트 파일 > Build Phases > Compile Sources에 추가가 안되어 있는 경우 – 파일이 Target에 추가 안된 것이 원인 이 세가지 케이스인것 같다. 비슷하게 실행은 잘 되는데 Unit Test 빌드가 깨질때도, Build Phases를 먼저 확인해보면..

[iOS Objective c] 화면 흔들기 (view shake) 구현

[iOS Objective c] 화면 흔들기 (view shake) 구현 setDuration : 애니메이션 실행 시간setRepeatCount : 애니메이션 실행 횟수 setFromValue : 애니메이션 시작 위치setToValue : 애니메이션 끝 위치 다음 코드는 0.05초 동안 좌우로 20.0f 씩 4번 흔드는 애니메이션 CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"]; [animation setDuration:0.05]; [animation setRepeatCount:4]; [animation setAutoreverses:YES]; [animation setFromValue:[NSValue val..

[iOS] NSMutableArray 배열 순서 섞기

[iOS] NSMutableArray 배열 순서 섞기 (랜덤으로 섞기) [Objective-c] for (int i=0; i < [arrTestA count]; i++) { int random = arc4random() % [arrTestA count]; [arrTestA exchangeObjectAtIndex:random withObjectAtIndex:i]; } 만약 특정 인덱스는 섞으면 안될 경우 아래 코드를 추가해주자. if (random == 5 || i == 5) { continue; } [Swift] extension Array { mutating func suffle() { if count < 2 { return } for i in 0 ..< (count - 1) { let j = Int(..

[Objective-c] @synthesize 사용 안해도 돼요

[Objective-c] @synthesize 사용 안해도 돼요! 가끔씩 맥이나 iOS 관련 개발 카페등을 보면, 2014년이 시작된 지금까지도 Objective C의 문법중 @synthesize에 관해 물어보는 분들이 계십니다. (참고로, Object C(오브젝트 C) 아닙니다. Objective C(오브젝티브 C) 입니다. 이거 헷갈리시는 분들이 있더군요.) 아마도, 조금 오래된 책으로 공부하거나(최근 책들은 보지 못했습니다만...) 예전에 작성되었던 소스들을 보면서 공부하기 때문인것 같습니다. 그런데, 사실 이제는 2012년 중반 이후로 Modern Objective C가 나온 이후 부터는 @synthesize는 더이상 사용할 일이 거의 없습니다. (정확히 버전은 기억나지 않지만 XCode 4.5정..

반응형