증상
xcode로 프로젝트를 아이폰에 빌드, 실행도 잘되고 아카이브, 업로드도 잘되는데 출시하려고 좀 기다리면 "잘못된 바이너리로 상태가 변경되었습니다."라고 메시지가 날아오면서 해당 바이너리가 사라져 버린다.
아무런 설명 없이 날아가버리는데 뭐가 문제일까?
원인
알고 보니 회사 공식 메일(앱스토어가 연결되어 있는 공식 계정)에 바이너리가 거절된 이유를 상세하게 설명한 메일이 와 있었다.
내가 해당 메일 접근 권한이 없어서 메일이 온지도 전혀 몰랐던 것이다.
당신도 앱스토어 공식 계정으로 메일이 왔는지 확인해보라
메일에는 아래와 같은 내용이 와 있었다.
Dear Developer,
We identified one or more issues with a recent delivery for your app, “Mecha head League” 1.0.11 (115). Please correct the following issues, then upload again.
ITMS-90683: Missing Purpose String in Info.plist - Your app’s code references one or more APIs that access sensitive user data. The app’s Info.plist file should contain a NSPhotoLibraryUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you’re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn’t contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).
Though you are not required to fix the following issues, we wanted to make you aware of them:
ITMS-90078: Missing Push Notification Entitlement - Your app appears to register with the Apple Push Notification service, but the app signature’s entitlements do not include the ‘aps-environment’ entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the ‘aps-environment’ entitlement. Xcode does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in the project editor’s Capabilities pane, or manually add the entitlement to your entitlements file. For more information, see https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1.
Best regards,
The App Store Team
developer.apple.com
Local and Remote Notification Programming Guide: Configuring Remote Notification Support
Describes how apps can send and receive user notifications locally and remotely.
사람마다 증상은 다를 것이고 그에 따라 메일 내용도 다를 것이다. 메일의 내용을 대략 해석하자면
- 프로젝트가 photolibrary를 사용하기 때문에 photolibrary 사용에 관한 안내 문구를 제시해야 한다.
- Push Notification을 사용하는데 설정이 제대로 안되어있다.
해결
1. 프로젝트가 photolibrary를 사용하기 때문에 photolibrary 사용에 관한 안내 문구를 제시해야 한다.
info.plist에 설정 추가
<key>NSPhotoLibraryUsageDescription</key>
<string>Photo Library Access Warning</string>
2. Push Notification을 사용하는데 설정이 제대로 안되어있다.
Signing & Capabilities > +Capabilties > Push Notification 추가를 해준다.
위의 설정대로만 해주면 정상적으로 업로드 및 출시가 가능하다.
'Unity > 트러블슈팅' 카테고리의 다른 글
유니티 빌드 오류 - CommandInvokationFailure: Failed to update Android SDK package list. (12) | 2021.01.11 |
---|---|
유니티 안드로이드 빌드 에러 - unexpected element <queries> found in <manifest> (1) | 2020.12.07 |
유니티 빌드 오류 - Failed running il2cpp.exe --convert-to-cpp (1) | 2020.09.27 |
유니티 Fatal Error (0) | 2020.09.24 |
유니티 트레일 움직여도 작동안할때 (0) | 2020.09.23 |