Development/iOS

Development/iOS

iOS 앱의 생명주기 (iOS app lifecycle)

생명주기 상태 iOS 12 이하에서의 앱 생명주기 내용을 정리하고자 한다. 먼저, iOS 앱의 생명주기에는 5가지 단계가 존재한다. Not Running, Inactive, Active, Background, Suspended Not Running 단어 그대로 현재 앱이 실행되어 있지 않은 상태이다. ( 메모리에 존재 X ) Inactive 앱이 실행은 되어 있지만, 특정한 상황에 의해 ( 멀티태스킹 윈도우로 이동, 전화가 오거나 알람이 실행 ) 실질적으로 사용자가 앱과 상호작용이 불가한 상태이다. Active 앱이 실행되어 현재 사용자의 이벤트를 받을 수 있는 상태이다. Background 홈 화면으로 진입하거나, 다른 앱을 실행하여 실질적으로 앱이 동작하지 않는 상태이다. 앱과 서버와의 데이터 동기화..

Development/iOS

RSA 암호화를 통한 전자서명 구현

증권사 프로젝트를 하면서 비대칭키 암호화 방식을 이용한 전자서명 메커니즘을 구현해야 하는 일이 생겼다. 대칭키 암호화만 쓰다가 비대칭키라.. 어떻게 이게 되는거지 싶었다. 사실 아직도 이해가 안가는 부분이 좀 많긴 한데, 이것저것 시도해보면서 구현은 성공해서 정리를 좀 하려고 한다. 나는 비대칭키 암호화 알고리즘으로 RSA 를 선택했다. 비대칭키 암호화 방식의 대표적인 방식 중 하나였기 때문에, 레퍼런스가 많을 것으로 생각하고 선정했다. 여하튼, 먼저 RSA 암호화에 사용할 공개 키와 개인 키를 생성해준다. var publicKey: SecKey? var privateKey: SecKey? let keyPairAttr: [NSString: Any] = [ kSecAttrKeyType: kSecAttrKe..

Development/iOS

iOS 16.4 이상에서 WKWebview 디버깅 안될 때

오늘 웹뷰 디버깅을 해봐야 할 일이 생겨서 Safari에서 보려는데 계속 "검사할 수 있는 응용프로그램 없음" 만 뜨고 웹뷰가 잡히지를 않는 것이었다.. 맥북 문제인지 빌드할 때 뭐가 잘못된 건지 싶어서 재부팅, 재빌드도 해봤지만 안되었다😓 찾아보니까 iOS 16.4부터 WKWebview에 웹뷰 디버깅 여부를 설정할 수 있는 프로퍼티가 추가되었다고 한다. 기본 값이 false라고 하니 따로 설정해주지 않았다면 iOS 16.4 이상부터는 안 되는 게 맞는 듯하다. if #available(iOS 16.4, *) { webView.isInspectable = true } 요로코롬 수정해 주면 다시 웹뷰 디버깅을 할 수 있다.

Development/iOS

iOS 파일 앱에서 앱 폴더가 보이지 않을 때

앱 내에서 다운로드 한 파일들은 기본적으로 앱 별도의 저장공간에 저장이 된다. 회사 내부에서 사용중이던 앱은 해당 앱의 저장공간을 파일 앱에서 조회할 수가 있었는데 고객사 앱 중, 파일 앱에서 저장공간을 조회할 수 없는 앱이 있었다. 예전에 이 문제와 관련해서 설정을 한 기억이 있었던 것 같은데,, 조금 헤매서 글로 남긴다. 1) 앱의 info.plist 파일에 키 값을 설정한다. Application supports iTunes file sharing Supports opening documents in place 위의 두 값을 info.plist 파일에 YES로 설정해준다. 나 같은 경우엔 Supports opening documents in place 이 값을 빠져있어서 조회가 안됐다. 보통은 저 ..

Development/iOS

iOS MDM 인증서 발급 및 프로파일 생성 (1)

허허.. 회사에서 iOS MDM 개발을 하라는 업무를 줘서 난데없이 MDM을 개발하게 되었다... (이땐 MDM이 뭔지도 몰랐다) MDM이란?? Mobile Device Management 의 약자로, 쉽게 말해서 그냥 기기 관리 시스템?? 이라고 생각하면 된다. MDM 개발하라는데... 진짜 정보가 없어서 눈물나는 와중에 그나마 찾아낸 정보들로 어렵게 개발을 하긴 했다..ㅋㅋㅋ 이 글을 작성하는 목적은 사람은 망각의 동물이라 하지 않던가... 나중에 내가 잊을 확률이 99.9% 이기 때문에 작성하기도 하고, 보편적으로 MDM 개발을 하는 경우는 드물지만, 나처럼 MDM 정보가 필요한 소수의(?) 사람들을 위해 작성한다. 아래는 내가 MDM 개발을 하며 참고했던 사이트들이다. 현재 작성중인 글을 읽고도 ..

Development/iOS

iOS 14, 앱 업데이트가 필요함 알림

회사에서 iOS 오류 건 확인 중, 아래와 같은 알림이 뜬다는 요청이 들어왔다. 해당 알림을 보자마자 '이건 뭔 케이스지..?' 라는 생각이 들었다. 나는 저 알림이 뜬 이유가 Deprecated 된 메소드를 사용해서 그러나 싶었지만, 요청 내용을 보니 함께 첨부해준 Apple 문서 URL이 있어서 들어가봤다. developer.apple.com/documentation/xcode/using_the_latest_code_signature_format Apple Developer Documentation developer.apple.com 대충 해당 문서의 내용은 iOS 14.2 Beta 2 에서부터 새롭게 앱을 서명하는 방식이 추가 되었으니 이제부턴 새로운 앱 서명 방식을 이용해야 한다... 뭐 그런 얘..

Development/iOS

Apple Enterprise 앱 설치가 안되는 경우

Apple Enterprise 계정으로 In-house 배포한 앱이 갑자기 설치가 안되는 오류가 얼마 전 발생했다. '앱 이름' 을(를) 설치할 수 없음 / 무결성을 확인할 수 없기 때문에 이 앱을 설치할 수 없습니다. '앱 이름' 을(를) 설치할 수 없음 / 나중에 다시 시도하십시오. '앱 이름' 을(를) 실행할 수 없음 위 같은 문구가 뜨며 앱을 설치/실행 할 수 없는 오류였다. 하여, 해당 오류들이 발생하던 원인과 해결 방법에 대해 끄적여보려 한다. 1) 인증서 / 프로파일 문제가 발생하던 .ipa 파일 빌드에 사용했던 인증서나 프로파일의 만료일을 확인해보자. 인증서/프로파일의 만료일이 지난 경우엔 당연하게도 앱 실행이나 설치를 할 수가 없다. 만일 어떤 것을 사용했는지 모르겠다면 .ipa 파일로도..

Development/iOS

.IPA 파일을 통해 프로파일 및 배포 인증서 만료일 확인하기

.IPA 파일을 이용해서 프로파일 및 인증서 만료일을 확인하기 위해선 해당 IPA 파일을 압축해제 해야한다. unzip -q 파일명.ipa 터미널에서 해당 .ipa 파일을 위의 커맨드를 이용하여 압축해제 하면 된다. 압축을 풀고 나면 Payload 디렉토리와 그 안에 패키지 파일이 있다. 배포 프로파일 만료일 확인 패키지 파일을 우클릭 해서 '패키지 내용 보기' 를 하면 나오는 파일 리스트에서 embedded.mobileprovision 파일을 찾는다. security cms -D -i 프로파일 경로 해당 파일과 위의 커맨드로 배포 프로파일의 정보를 확인 할 수 있다. 출력 된 정보 중 ExpirationDate 의 date 값이 배포 프로파일의 만료일이다. 배포 인증서 만료일 확인 배포 인증서 만료일..

따봉냥이
'Development/iOS' 카테고리의 글 목록