📂 IOS

iOS에서 위치 테스트 시 번거로운 점 안드로이드와 달리 Fake GPS 사용이 불가하기 때문에 실제로 발품을 팔아야함 실시간 로그를 볼 수 없기 때문에 문제 발생 시 원인 파악이 어렵다 사소한 수정이 발생해도 빌드 후 다시 발품을 팔아야함 하여 실제 단말기에서는 방법은 없었지만 시뮬레이터에서 가상 위치로 테스트할 수 있는 방법을 공유드립니다. 하기 예제는 애플 공식 문서를 참고하여 지오펜싱(Geofencing : 지리와 울타리의 합성어)으로 준비하였습니다. 1. 위치 서비스 코드 작성 1-1. Project - Signing & Capabilities 위치 사용을 위해 Background Modes 추가 후 Location updates 항목을 체크해주세요. 1-2. Info.plist 위치 권한 팝업..
category_list_image
차니 ☻
2021.12.27
(0)
iOS
오늘은 UIViewController의 Life-Cycle에 대해 알아보겠습니다 화면의 생애 정도로 봐도 될 것 같네요. 1. init 1-1. init(coder:) 스토리보드를 통해 ViewController 초기화 작업을 하는 메소드입니다. 1-2. init(nibName:bundle:) nib를 통해 init(corder:)를 대신하여 초기화 작업을 하는 메소드입니다. 2. loadView 뷰를 실제로 생성해서 메모리에 로드합니다. 스토리보드나 nib(xib)을 사용하지 않는다면 이 메소드를 오버라이드해서 뷰를 만들고 뷰계층을 구성해야 합니다. 3. viewDidLoad 뷰가 메모리에 로드된 이후 시점에 한 번만 호출됩니다. 뷰가 로드는 되었으나 화면에 뷰가 나타나진 않았으므로 빈 화면에서 발생합..
category_list_image
차니 ☻
2021.11.24
(0)
오늘은 iOS 앱 개발을 한다면 꼭 알아야 할 Delegate Pattern에 대해 정리해보겠습니다. 1. Delegate란 무엇인가? Delegate의 사전적 의미를 보면 대리자, 위임자 정도로 해석이 가능합니다 '뭘 위임한다는 거지...?' 라는 의문이 들 텐데, Swift에서는 Delegate 패턴을 통해 특정 기능을 위임하는 것이 가능합니다 한 객체에서 모든 프로세스를 처리하기엔 가독성, 코드 재사용성 측면에서 많은 손해를 보기 때문입니다 2. 사용법 이제는 델리게이트가 뭔지도 알겠고 왜 쓰는지도 알겠는데 어떻게 쓰는 걸까? delegate를 제대로 사용하기 위해서는 아래 내용들을 이해하고 있어야 합니다 프로토콜 (Protocol) : 대리자가 수신자에게 전달할 내용의 약속(규칙)입니다 수신자 (..
category_list_image
차니 ☻
2021.11.22
(0)
iOS
1. pod install pod 'GoogleSignIn' Podfile에 GoogleSignIn 디펜던시를 추가 후 pod install을 진행합니다. 2. ClientID 생성 구글 클라우드 플랫폼에서 프로젝트 생성 후 API 및 서비스 - 사용자 인증 정보 탭으로 이동합니다 사용자 인증 정보 만들기 > OAuth 클라이언트 ID로 이동합니다 OAtuh 동의 화면 설정이 안 되어있다면 순차적으로 진행하시면 됩니다 iOS 항목을 선택하여 생성합니다 클라이언트 ID가 생성되었다면 사전 설정은 완료입니다 3. 프로젝트 설정 프로젝트 설정 > URL Types에 발급받은 ClientID를 역순으로 적어줍니다 func application(_ application: UIApplication, open url..
category_list_image
차니 ☻
2021.11.17
(0)
iOS
오늘은 아이폰에서 갤러리 사진을 가져오는 방법에 대해 알아보도록 하겠습니다 UIImagePickerController는 시스템에서 제공하는 갤러리 이미지 픽커입니다 테스트를 위한 화면 생성 과정은 생략합니다! 1. UIImagePickerContoller 초기화 let picker = UIImagePickerController() self.picker.delegate = self self.picker.sourceType = .photoLibrary self.picker.modalPresentationStyle = .fullScreen 픽커를 사용할 ViewController에서 UIImagePickerController 인스턴스 생성 및 초기화를 진행합니다 delegate : 픽커에서 선택한 이미지 정보..
category_list_image
차니 ☻
2021.11.17
(0)
1. 개요 회사(xcode 13.1)에서 생성한 프로젝트가 집(12.3)에서 열리지 않았다 내용은 명료하다 현재 xcode 버전과 프로젝트 xcode 버전이 호환이 안돼서 열지 못 한다는 내용.. 2. 해결방법 Xcode 13.1에서 생성한 프로젝트이니 설정 값을 바꾸면 되지않을까 싶어서 프로젝트를 뒤적거리다 방법을 찾았다 프로젝트 우클릭 → 패키지 내용 보기로 들어간다 그러면 위 세 가지 항목들이 보이는데 그 중 project.pbxproj를 열어준다 해당 파일에는 프로젝트 설정들이 들어가있다 이제 수정할 부분을 찾는다 objectVersion 이 값의 정확한 의미는 잘 모르겠다. 이 값을 다운그레이드 하지 않으니 계속 프로젝트가 열리지 않아서 낮춰주었다 CreatedOnToolsVersion 프로젝트..
category_list_image
차니 ☻
2021.11.11
(0)
1. 개요 A 맥북에서 작업하던 프로젝트를 B 맥북에서 빌드했는데 화면의 절반 가량이 사라져서 표시됨 2. 해결방법 프로젝트 → General 탭에서 App Icons and Launch Images 항목에서 Launch Screen File에서 storyboard를 설정해주었더니 해결됨
category_list_image
차니 ☻
2021.11.11
(0)
1. 개요 앱을 백그라운드 상태로 두고 스키마를 통해 앱으로 진입될 때 AppDelegate에서 WebView에 callback을 줌 callback에 alert가 있는 경우 CPU 사용량 100%로 치솟음과 동시에 앱 터치 먹통 2. 재현 NSString* str = [[NSString alloc] initWithFormat:@"alert('Test')"]; dispatch_async(dispatch_get_main_queue(), ^{ [topView stringByEvaluatingJavaScriptFromString:str]; }); topView는 WebView 인스턴스라고 가정 AppDeleage에서 alert('Test')를 호출함 이 때 화면에 alert가 나타나며 현상 재현 3. 해결 ..
category_list_image
차니 ☻
2021.11.03
(0)
iOS
B2B에서는 꽤나 유용하게 쓸 수 있을 것 같아 공유드립니다. 알아본 바로 앱 내에서 인증서의 만료일을 가져올 수 있는 API는 존재하지 않습니다. 그렇기에 빌드 시 생성되는 embedded.mobileprovision 파일을 이용해서 만료일을 가져와 보겠습니다. 코드만으로 앱에서 만료일을 조회할 수도 있지만, 원리를 설명드리기 위해 아카이브를 통해 진행해보도록 하겠습니다. 바로 코드에 적용하실 분들은 1~3번은 건너뛰어도 무방합니다. 1. ipa 준비 앱을 아카이브하여 ipa 파일을 준비해줍니다. 2. ipa unzip unzip -q TEST.ipa 터미널에서 해당 경로로 이동 후 ipa 파일을 unzip 해주도록 합니다. 그러면 Palyoad 폴더안에 *.app 파일이 생겼을거에요 마우스 우클릭 후..
category_list_image
차니 ☻
2021.10.25
(0)
iOS
1. 개요ios-deployXcodeTestFlight 혹은 AppStoreDropbox별도 서버 구축 아이폰에서 ipa 설치를 위한 방법은 크게 5가지로 나눌 수 있을 것 같습니다.in-house 앱을 불특정 다수에게 배포가 필요한 상황이라면 4번 혹은 5번 방식을 사용할 수 있습니다. 오늘은 그 중 5번 방법을 활용해 ipa 파일을 배포하는 방법에 대해 알아보도록 하겠습니다. 2. 서버 준비2-1. apache httpd사용자가 접속할 수 있는 웹 서버를 열어주도록 합니다. 2021.10.22 - [OS/Mac] - [Mac] apache httpd로 웹 서버 구동하기 [Mac] apache httpd로 웹 서버 구동하기1. brew 설치 2021.10.13 - [OS/MacOS] - [MacOS] ..
category_list_image
차니 ☻
2021.10.22
(0)
1. 상황 9월에 iPhone OS 15가 출시됐는데 아직 macOS Monterey 및 Xcode 13 정식 출시 안됨 Xcode 13 베타 버전을 사용하지 않으면 Xcode 12.5에서는 OS 15 단말을 디버깅이 불가능함 이번에 OS 15 단말을 디버깅할 일이 생겨 위 상황으로 제약이 걸렸는데 Xcode 12.5 버전으로 디버깅할 수 있는 두 가지 방법 공유드립니다. 2. 처음 시도 애플 디벨로퍼 사이트에서 Xcode 13을 다운받아 진행해보려고 했습니다. 다운받고 실행해보니 이런 메시지가 나왔습니다. 아마도 macOS가 Big Sur인 상태로 앱을 구동해서 그런 것 같다고 추측 중입니다. 그럼 결론은 Monterey 베타 버전을 사용해야 한다는 건데.. 그건 너무 비효율 적일 것 같아서 더 찾아보..
category_list_image
차니 ☻
2021.10.20
(0)
iOS
오늘은 macOS에서 iPhone 미러링 하는 방법에 대해 알아보겠습니다. Android처럼 공유된 화면을 직접 조작하는 등의 방식은 OS 정책상 불가하지만 단순히 미러링 개념으로는 접근 가능합니다. 1. QuickTime Player 앱을 실행시키면 QuickTime Player가 표시될텐데 파일 - 새로운 동영상 녹화로 이동합니다. 그러면 디폴트로 맥북 카메라에 본인 모습이 비칠텐데 너무 당황하지 마시고 녹화 아이콘 우측 버튼을 눌러서 mac과 연결된 폰으로 변경해주면 됩니다. 2. Replica 7일 동안 무료 체험으로 사용할 수 있는데, 7일 이후에도 광고보면서 그냥저냥 사용 가능합니다. ** mac과 폰이 같은 네트워크(와이파이)에 연결되어있어야 합니다 ** 3. TeamViewer 앱스토어에서..
category_list_image
차니 ☻
2021.10.14
(0)
차니 ☻
'IOS' 태그의 글 목록