iOS에서 위치 테스트 시 번거로운 점 안드로이드와 달리 Fake GPS 사용이 불가하기 때문에 실제로 발품을 팔아야함 실시간 로그를 볼 수 없기 때문에 문제 발생 시 원인 파악이 어렵다 사소한 수정이 발생해도 빌드 후 다시 발품을 팔아야함 하여 실제 단말기에서는 방법은 없었지만 시뮬레이터에서 가상 위치로 테스트할 수 있는 방법을 공유드립니다. 하기 예제는 애플 공식 문서를 참고하여 지오펜싱(Geofencing : 지리와 울타리의 합성어)으로 준비하였습니다. 1. 위치 서비스 코드 작성 1-1. Project - Signing & Capabilities 위치 사용을 위해 Background Modes 추가 후 Location updates 항목을 체크해주세요. 1-2. Info.plist 위치 권한 팝업..
오늘은 UIViewController의 Life-Cycle에 대해 알아보겠습니다 화면의 생애 정도로 봐도 될 것 같네요. 1. init 1-1. init(coder:) 스토리보드를 통해 ViewController 초기화 작업을 하는 메소드입니다. 1-2. init(nibName:bundle:) nib를 통해 init(corder:)를 대신하여 초기화 작업을 하는 메소드입니다. 2. loadView 뷰를 실제로 생성해서 메모리에 로드합니다. 스토리보드나 nib(xib)을 사용하지 않는다면 이 메소드를 오버라이드해서 뷰를 만들고 뷰계층을 구성해야 합니다. 3. viewDidLoad 뷰가 메모리에 로드된 이후 시점에 한 번만 호출됩니다. 뷰가 로드는 되었으나 화면에 뷰가 나타나진 않았으므로 빈 화면에서 발생합..
오늘은 iOS 앱 개발을 한다면 꼭 알아야 할 Delegate Pattern에 대해 정리해보겠습니다. 1. Delegate란 무엇인가? Delegate의 사전적 의미를 보면 대리자, 위임자 정도로 해석이 가능합니다 '뭘 위임한다는 거지...?' 라는 의문이 들 텐데, Swift에서는 Delegate 패턴을 통해 특정 기능을 위임하는 것이 가능합니다 한 객체에서 모든 프로세스를 처리하기엔 가독성, 코드 재사용성 측면에서 많은 손해를 보기 때문입니다 2. 사용법 이제는 델리게이트가 뭔지도 알겠고 왜 쓰는지도 알겠는데 어떻게 쓰는 걸까? delegate를 제대로 사용하기 위해서는 아래 내용들을 이해하고 있어야 합니다 프로토콜 (Protocol) : 대리자가 수신자에게 전달할 내용의 약속(규칙)입니다 수신자 (..
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..
오늘은 아이폰에서 갤러리 사진을 가져오는 방법에 대해 알아보도록 하겠습니다 UIImagePickerController는 시스템에서 제공하는 갤러리 이미지 픽커입니다 테스트를 위한 화면 생성 과정은 생략합니다! 1. UIImagePickerContoller 초기화 let picker = UIImagePickerController() self.picker.delegate = self self.picker.sourceType = .photoLibrary self.picker.modalPresentationStyle = .fullScreen 픽커를 사용할 ViewController에서 UIImagePickerController 인스턴스 생성 및 초기화를 진행합니다 delegate : 픽커에서 선택한 이미지 정보..
1. 개요A 맥북에서 작업하던 프로젝트를 B 맥북에서 빌드했는데 화면의 절반 가량이 사라져서 표시됨 2. 해결방법프로젝트 → General 탭에서 App Icons and Launch Images 항목에서 Launch Screen File에서 storyboard를 설정해주었더니 해결됨
B2B에서는 꽤나 유용하게 쓸 수 있을 것 같아 공유드립니다. 알아본 바로 앱 내에서 인증서의 만료일을 가져올 수 있는 API는 존재하지 않습니다. 그렇기에 빌드 시 생성되는 embedded.mobileprovision 파일을 이용해서 만료일을 가져와 보겠습니다. 코드만으로 앱에서 만료일을 조회할 수도 있지만, 원리를 설명드리기 위해 아카이브를 통해 진행해보도록 하겠습니다. 바로 코드에 적용하실 분들은 1~3번은 건너뛰어도 무방합니다. 1. ipa 준비 앱을 아카이브하여 ipa 파일을 준비해줍니다. 2. ipa unzip unzip -q TEST.ipa 터미널에서 해당 경로로 이동 후 ipa 파일을 unzip 해주도록 합니다. 그러면 Palyoad 폴더안에 *.app 파일이 생겼을거에요 마우스 우클릭 후..
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] Home..