엔터프라이즈 인증서로 빌드해서 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 <NSError: 0x104704730; domain: NSPOSIXErrorDomain; code: 3; reason: "The process failed to exec"> {
description = "Unable to get valid task name port right for pid 1280";
failureReason = "The process failed to exec";
recoverySuggestion = "Consult /var/log/com.apple.xpc.launchd/launchd.log for more information";
}
error 10:41:53.246260 +0900 SpringBoard [my.bundle.id] Bootstrap failed with error: <NSError: 0x28048ab80; domain: BKSProcessErrorDomain; code: 1 (bootstrap-failed); reason: "Failed to start job">
error 10:41:53.246582 +0900 SpringBoard Bootstrapping failed for <FBApplicationProcess: 0x11097a790; myBundleId; pid: -1> with error: Error Domain=BKSProcessErrorDomain Code=1 "Unable to bootstrap process with bundleID my.bundle.id" UserInfo={NSLocalizedDescription=Unable to bootstrap process with bundleID my.bundle.id, BKSProcessExitReason=0, NSLocalizedFailureReason=Failed to start job, NSUnderlyingError=0x280488240 {Error Domain=NSPOSIXErrorDomain Code=3 "No such process" UserInfo={NSLocalizedFailureReason=The process failed to exec, NSLocalizedRecoverySuggestion=Consult /var/log/com.apple.xpc.launchd/launchd.log for more information, NSLocalizedDescription=Unable to get valid task name port right for pid 1280}}, BSErrorCodeDescription=bootstrap-failed}
분명히 내 맥북에서 만든 빌드 파일은 정상적으로 실행되는데, 동료의 맥북으로 빌드한 파일만 이런 현상이 발생한다.
다 똑같이 한 것 같은데 뭐가 문제일까?
결론부터 말하면 사이닝이 정상적으로 되지 않았기 때문에 발생하는 이슈였다.
배포파일을 만들 때 (앱에 사이닝을 할 때) 필요한 파일들은 다음과 같다.
- Apple Worldwide Developer Relations Certification Authority (키체인 위치 system & login) - Apple Developer 사이트에서 다운로드 받을 수 있음
- iPhone Distribution 인증서와 개인키 (키체인 위치 login) - 인증서를 최초 생성한 맥에서 export -> 빌드 하려는 맥에 import
- (푸시 서비스를 이용한다면) Apple Push Services: bundle id 인증서 (키체인 위치 login) - 인증서를 최초 생성한 맥에서 export -> 빌드 하려는 맥에 import
- Provisioning Profile - Apple Developer 사이트에서 다운로드 후 finder에서 실행하거나(실행해도 아무일도 일어나지는 않음) Archive 하는 과정에서 다운로드 하는 방법도 있음
Provisioning Profile의 로컬 경로 : ~/Library/MobileDevice/Provisioning Profiles/
> 로컬 경로는 적어둔 이유는 가끔 위 과정(4번)으로 import 시켜도 기존 프로비저닝 프로파일이 갱신되지 않아 문제가 해결되지 않는 케이스가 있다. 로컬 경로에서 확실하게 지운 후 다시 import 시키는 방식이 가장 확실한 방법이다.
나의 경우 동료의 맥북에서 위 파일들을 모두 제거한 후 새롭게 import 시킨 후 다시 사이닝 했더니 케이스가 해결 되었다.
'Trouble Shooting > iOS' 카테고리의 다른 글
ITMS-91053: Missing API declaration 해결 (1) | 2024.04.02 |
---|---|
pb_check_proto3_default_value + 342 (0) | 2024.03.20 |
Invalid MinimumOSVersion. Apps that only support 64-bit devices must specify a deployment target of 8.0 or later. (2) | 2024.03.15 |
하이브리드앱(iOS-Javascript) 간 인터페이스 방법 (0) | 2022.06.20 |