일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Apple
- mac
- FLUTTER
- stack
- 개발자
- Realm
- Git
- JPA
- Archive
- IOS
- darkmode
- github
- window
- SwiftUI
- MacOS
- view
- Xcode
- appstore
- Code
- Session
- rxswift
- UIButton
- Notification
- 한글
- error
- iOS16
- 웹뷰
- geofencing
- Swift
- Firebase
- Today
- Total
목록IOS (174)
EEYatHo 앱 깎는 이야기
Xcode에 등록된 프로파일은 .mobileprovision 파일로 한 폴더에 모여있으며, 해당 파일을 삭제하면 프로파일이 삭제된다. 프로파일이 모여있는 폴더의 경로는 아래와 같으며, Macintosh HD / User / {유저이름} / 라이브러리 / MobileDevice / Provisioning Profiles 아래 사진처럼 Finder > 이동 > 폴더로 이동 > ~/Library/MobileDevice/Provisioning Profiles 입력 으로 간단하게 해당 폴더를 열 수 있다. 경로에 있는 .mobileprovision 파일을 삭제해주면, Xcode에서도 삭제된다. 어떤 .mobileprovision파일이 내가 지우고 싶은 프로파일인지 확인하는 방법은, 프로파일 우클릭 > 정보 가져오..
리뷰 받기는 팝업을 띄우도록 기본 제공되는 함수도 있고, 앱스토어 리뷰작성 페이지로 이동할 수 있는 url도 제공된다. Apple Developer Documentation developer.apple.com 애플 개발자 사이트에도 나와있다. :) 1. 앱 내에서 리뷰 화면 띄우기 SKStoreReviewController.requestReview() 개발자 사이트에 따르면, 이 방법은 - Development 환경에서는 항상 뜨고, - TestFlight 환경에서는 뜨지 않으며, - 실제로 배포되었을 때는, 애플 정책을 따른다고 되어있다. 해당 정책에 대한 링크 : https://developer.apple.com/app-store/ratings-and-reviews/ 음... 1년에 3번 넘게 안뜬다..
UIImagePickerController 로 카메라를 여는 소스를 작성할 때 요따구로 썼었는데, ( iPad 부분은 덤 ) camera.sourceType = .camera camera.allowsEditing = true if UIDevice.current.userInterfaceIdiom == .pad { //디바이스 타입이 iPad일때 if let popoverController = camera.popoverPresentationController { popoverController.sourceView = view popoverController.sourceRect = CGRect(x: view.bounds.midX, y: view.bounds.midY, width: 0, height: 0) po..
전화온거 감지. ( 인터럽트 발생 및 감지 ) 1. import import AVFoundation 2. 노티 옵저버 추가 ( AVAudioSession.interruptionNotification ) NotificationCenter.default.addObserver(self, selector: #selector(handleInterruptionOccured(notification:)), name: AVAudioSession.interruptionNotification, object: AVAudioSession.sharedInstance()) 3. 처리 로직 @objc private func handleInterruptionOccured(notification: Notification) { let i..
UI 컴포넌트를 만들 때 너무나도 당연히, UIView를 서브클래싱하고, addSubView로 써왔다. 그런데 왠걸? UIViewContoller를 서브클래싱해서 만들어놓고, addChild 하는 코드를 보았다. 그래서 사용법을 따져보니, UIView 서브클래싱 삽입 pView.addSubView(cView) 제거 cView.removeFromSuperview() UIViewContoller 서브클래싱 삽입 pVC.addChild(cVC) pVC.view.addSubView(cVC.view) cVC.didMove(toPatent: pVC) 삭제 cVC.willMove(toParent: nil) cVC.view.removeFromSuperview() cVC.removeFromParent() 와... 비효율..
CPU(칩셋)는 아래와 같은 다양한 특징이 있다. - 한번에 처리하는 데이터의 양 ( 32bit, 64bit 등 ) - 코어의 구성 ( 싱글/멀티 프로스세, 코어 갯수 등 ) - ISA ( 명령어 세트 아키텍처 ) ( CISC, RISC, VLIW ) - 쿨럭 수 - 쿨럭당 성능 - 레지스터, ALU, 캐시, 디코더의 세부 사항 - 플린 분류 - 펭의 분류 등등... 공통된 특징을 가진 CPU 칩셋을 제작한 뒤, 이름을 붙힌게 CPU아키텍처이다. 컴퓨터에서 자주 들었던 x86, x64, AMD64 등을 말한다. 특정 CPU아키텍처에서, 유저가 컴퓨터를 쉽게 사용할 수 있도록, 중간 역할을 하는 것이 운영체제(OS)이다. 때문에 운영체제는, CPU아키텍처에 종속될 수 밖에 없다. 컴퓨터의 CPU아키텍처는,..
차이점 NSMutableDictionary 수정, 삭제, 삽입 가능. NSDictionary 수정, 삭제, 삽입 불가능. 그런데 막상 코드를 보면, NSDictionary 에 .setValue(, forKey: ) 함수가 존재한다. 그래서 실제로 해보았는데, 오류가 발생한다. 실행 코드. let d: NSDictionary = NSDictionary(object: "object", forKey: "key" as NSCopying) d.setValue("value", forKey: "key2") 오류. Thread 1: "[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key key2." 반면, NSMuta..
사내에서 AirBridge를 쓰고 있길래 뭐하는 건가..해서 쪼끔 알아보았다. 특정 광고에 대해, 전환률이나 클릭율, 설치율 등 광고의 성과를 분석할 수 있으면 좋을 것이다. 이 성과분석의 핵심은, 광고를 본 사람과 이후 행동을 한 사람이 동일인물인지 판단하는 것. 즉 트래킹이다. 기존에 트래킹은 모바일 앱에서는 ADID, UDID 등 모바일 웹과 PC웹에서는 쿠키, 세션 등 한 플랫폼에서 독립적으로 이루어졌다. 이렇게 파편화된 것을 연결하여 트래킹 및 성과분석 해주는 툴이 에어브릿지다. 이메일이나 전화번호 등 확실한 식별자를 이용하여 매칭하는 시스템과, 확률적으로 매칭하는 시스템을 모두 사용하며, 어뷰징 방지 시스템, 다양한 커스터마이징 등이 가능하다. 데이터 만능 시대에 살다보니 이런 사업도 다 보네..