Trouble Shooting/iOS 5

ITMS-91053: Missing API declaration 해결

언제부턴가 AppStore(앱스토어)나 TestFlight(테스트플라이트)에 앱을 업로드하면 다음과 같은 메일을 받게 됩니다. 개인정보 보호 매니페스트 파일에 이유를 설명하지 않고 필수 이유 API를 사용하는 앱을 App Store Connect에 업로드하는 경우, Apple은 앱의 개인정보 매니페스트에 이유를 추가하라고 알리는 이메일을 사용자에게 보냅니다. 2024년 5월 1일부터 개인 정보 매니페스트 파일에 필수 이유 API 사용을 설명하지 않는 앱은 App Store Connect에서 허용되지 않습니다. 이슈 안내 원문 메시지 We noticed one or more issues with a recent submission for App Store review for the following app..

pb_check_proto3_default_value + 342

iOS 17.4 버전을 사용하는 아이폰 기기에서 디버그 빌드로 테스트 할때는 문제가 없었는데 릴리즈 빌드 버전에서만 앱이 시작하자마자 꺼지는 오류가 발생했다. 테스트 기기에서 자동으로 생성해준 오류 로그를 보니 다음과 같은 오류였다. Crashed: com.apple.main-thread EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x00000001736eb51c pb_check_proto3_default_value + 342 검색해보니 파이어베이스 라이브러리 내부 버그였고 10.22.0 이상의 버전으로 업데이트 해주니 이슈가 해결되었다. 해결방법: Firebase SPM 10.0.0 -> 10.22.1 로 변경 후 해결 Pod을 사용하는 경우에는 버전을 명시적으로 추가하거나 po..

Invalid MinimumOSVersion. Apps that only support 64-bit devices must specify a deployment target of 8.0 or later.

XCode 15.3 업데이트 이후 Archive 한 파일을 AppStore Connect 로 배포하려고 할 때 발생한 오류이다. 오류 원인은 프로젝트에서 사용중인 Firebase 모듈이 가지고 있는데 plist에 MinimumOSVersion 정보가 누락되어 발생하는 것으로 추정된다. 아마도 기존에는 3rdParty 모듈 내부의 MinimumOSVersion 까지 체크하지는 않았으나 최근에 체크하도록 변경이 있었나보다. 기존에 Firebase 모듈을 사용할 때 SPM에 v10.0.0을 사용중이었는데 10.22.1 에서는 해당 문제가 해결된것으로 확인되어 다음과 같이 수정했더니 AppStore Connect에 업로드가 정상적으로 된 것으로 확인하였다. Firebase 10.0.0 -> 10.22.1 Coc..

하이브리드앱(iOS-Javascript) 간 인터페이스 방법

iOS WKWebView에서 Local/Remote 환경에 있는 Javascript와 인터페이스 하는 방식에 대해 간략히 살펴보겠습니다. 유사한 내용을 정리한 글은 찾아보면 많이 있지만 대부분 한 쪽 측면(웹 또는 네이티브)으로 작성되어 있다보니 웹 프론트 사이드에서 해야 할 일, 네이티브 사이드에서 해야 할 일을 분명하게 명시해서 어떤 지점에서 인터페이스 규약을 서로 맞춰야 하는지에 대한 관점을 우선으로 정리해봤습니다. iOS > Javascript iOS에서 Javascript 소스를 호출하는 방법은 3가지 방식이 있습니다. 웹프론트가 어떤 방식으로 개발됐는지에 따라 적용 가능한 방법이 다를 수 있으니 유의해주세요. 방법1 React.js, Vue.js와 같이 컴포넌트 기반의 SPA 방식으로 개발..

엔터프라이즈 배포 파일(ipa) 설치 후 실행시 종료되는 케이스

엔터프라이즈 인증서로 빌드해서 IPA 파일을 만들어 배포했는데 디바이스에 설치는 정상적으로 됐지만 실행하면 곧바로 꺼지는 케이스가 발생했다. 맥북의 console.app으로 디바이스 로그를 확인했을 때 아래와 같은 로그를 남기면서 꺼졌다. [device log] error 10:41:53.245044 +0900 assertiond Unable to obtain a task name port right for pid 1280: (os/kern) failure (0x5) error 10:41:53.245554 +0900 assertiond Failed to start job with error { description = "Unable to get valid task name port right for pi..