ITMS-91064 오류 해결 방법
글: Mehdi Azizi
게시, 5분
ITMS-91064는 개인정보 매니페스트의 추적 키 두 개가 서로 맞지 않는다는 뜻이에요. 두 키를 맞추고 다시 빌드하면 돼요.
ITMS-91064는 빌드를 올린 뒤 Apple이 이메일로 보내는 자동 거절이에요. 개인정보 매니페스트에 있는 추적 관련 키 두 개가 서로 모순된다는 뜻이에요. 해결 방법은 NSPrivacyTracking과 NSPrivacyTrackingDomains를 서로 맞춘 다음 다시 빌드하는 거예요.
저는 트레이딩 연습 앱인 TradaZen에 광고 측정 도구를 붙인 뒤에 이 오류를 받았어요. 원인과 해결 방법을 정리해 볼게요.
ITMS-91064 오류는 무슨 뜻인가요?
메시지 제목은 "ITMS-91064: Invalid tracking information"이에요. 대상은 PrivacyInfo.xcprivacy 파일, 즉 앱과 SDK마다 하나씩 포함할 수 있는 개인정보 매니페스트예요. 이 파일에는 App Tracking Transparency 기준의 추적과 관련된 키 두 개가 들어 있어요.
NSPrivacyTracking: 앱이나 SDK가 데이터를 추적에 사용하면 true예요.NSPrivacyTrackingDomains: 추적을 위해 접속하는 도메인 목록이에요.
Apple은 잘못된 매니페스트에 관한 기술 노트에서 거절되는 조합 세 가지를 설명해요.
NSPrivacyTracking이 true인데 도메인 목록이 비어 있는 경우. 목록을 채워야 해요. 제 경우가 이거였어요.NSPrivacyTracking이 true인데 도메인 하나가 잘못 적힌 경우. 도메인에는 경로나 끝 슬래시를 붙이지 않아요.NSPrivacyTracking이 false인데 도메인이 나열된 경우. 목록을 지워야 해요.
기본 규칙은 개인정보 매니페스트 문서에 있어요. NSPrivacyTracking이 true면 도메인 목록을 반드시 제공해야 해요.
Apple 이메일에는 문제가 된 파일의 이름과 경로가 나와요. 이 경로를 꼭 읽어 보세요. 문제가 앱의 매니페스트인지, 포함된 SDK의 매니페스트인지 알려 줘요.
다른 ITMS 오류처럼 이건 리뷰어의 거절이 아니에요. 빌드를 올릴 때 자동으로 검사하고, 빌드는 제외돼요.
왜 생기나요: 타깃마다 매니페스트가 하나씩
여기가 함정이에요. SDK는 보통 자체 매니페스트와 도메인을 포함하고 있어요. 그걸로 충분하다고 생각하기 쉬워요. 하지만 앱에도 자기 매니페스트가 있고, 제 경우 Apple이 거절한 건 앱의 매니페스트였어요.
2026년 7월 21일, 제 경우예요. TradaZen에 광고 측정 도구를 연결하면서 앱 설정에 NSPrivacyTracking: true를 선언했어요. 이건 맞는 내용이에요. 그런데 NSPrivacyTrackingDomains를 추가하지 않았어요. SDK의 매니페스트는 완전했어요. 반면 Expo가 제 설정으로 생성한 앱의 매니페스트는 "true"인데 목록이 비어 있었죠. 빌드는 처리 단계에서 거절됐어요.
교훈: SDK의 매니페스트가 앱의 매니페스트를 대신해 주지 않아요. 설정에서 추적을 선언하면 도메인도 같이 선언해야 해요.
Expo 앱에서 ITMS-91064 해결하기
Expo에서는 앱 매니페스트를 설정 파일의 ios.privacyManifests에서 지정해요. 원리는 Expo의 개인정보 문서에, 키는 설정 레퍼런스에 있어요.
- SDK의 추적 도메인을 찾아요. 온라인에 있는 최신 버전이 아니라, 빌드에 포함된 버전의 매니페스트에서 목록을 그대로 옮겨 적으세요. 버전마다 다를 수 있어요. 지어내면 안 돼요.
- 설정에 추가해요. 아래 두 도메인은 바꿔 넣어야 할 예시예요.
{
"expo": {
"ios": {
"privacyManifests": {
"NSPrivacyTracking": true,
"NSPrivacyTrackingDomains": [
"example-tracking-domain.com",
"another-tracking-domain.com"
]
}
}
}
}
- 비용이 드는 빌드 전에 생성된 파일을 확인해요.
ios폴더가 Expo로 생성되고 git에서 무시되는 경우에 해당해요.npx expo prebuild -p ios를 실행한 뒤ios폴더에 생성된PrivacyInfo.xcprivacy파일을 열어 보세요.NSPrivacyTracking이true이고 도메인 목록이 전부 들어 있어야 해요. - 다시 빌드해서 제출해요. 매니페스트는 바이너리의 일부라서 원격 업데이트로는 바뀌지 않아요.
3단계는 주의하세요. 이 명령은 ios 폴더를 지우고 다시 만들 수 있어요. 그 안을 직접 수정했다면 프로젝트에서 바로 실행하지 말고 복사본에서 작업하세요.
앱이 추적을 전혀 하지 않는다면 더 간단해요. NSPrivacyTracking을 false로 바꾸고 목록을 지우면 돼요.
이 도메인들이 사용자에게 미치는 영향
도메인 선언은 형식적인 절차가 아니에요. Apple 문서에 따르면, 사용자가 App Tracking Transparency 창에서 추적을 허용하지 않으면 이 도메인으로 가는 요청은 실패해요. 의도된 동작이에요. 사용자가 동의했을 때만 추적이 이뤄지는 거죠.
App Store 페이지도 같은 내용을 말해야 해요. 매니페스트에서 추적을 선언했다면 페이지의 개인정보 신고와 개인정보 처리방침에도 그 내용이 있어야 해요. 그렇지 않으면 나중에 가이드라인 5.1.1이나 5.1.2로 리뷰어에게 거절당할 수 있어요. 자세한 내용은 앱 개인정보 처리방침에 있어요.
문제없이 빌드 제출하기
ITMS 오류는 읽는 법만 알면 금방 고쳐요. 그 뒤에 오는 거절은 좀 더 차분히 봐야 해요. 대응 방법은 Apple에 거절된 앱 페이지에, 가장 흔한 거절 사유는 Apple이 앱을 거절하는 이유에 정리해 뒀어요.
제출 전에 점검하고 싶다면 Apple Review Kit에 제 체크리스트와 프로젝트를 검토해 주는 Claude Code 스킬을 담아 뒀어요. 제출이 막혀서 사람의 눈이 필요하다면 저와 한 시간 예약하세요. 화상으로 화면을 보면서 프로젝트를 같이 살펴봐요. 첫 출시를 준비 중이라면 무료 진단을 받아 보세요. 단계를 순서대로 정리해 주고 Apple 거절 방지 체크리스트도 보내 드려요.
자주 묻는 질문
ITMS-91064는 App Review 거절인가요?
사람 리뷰어의 거절이라는 의미에서는 아니에요. 빌드를 올릴 때, 심사 전에 자동으로 하는 검사예요. 빌드는 제외되니까 개인정보 매니페스트를 고치고 새 빌드를 보내야 해요.
NSPrivacyTrackingDomains에는 무엇을 넣어야 하나요?
앱이나 SDK가 추적을 위해 접속하는 도메인이에요. 빌드에 포함된 버전의 SDK 매니페스트에 나와 있는 도메인을 그대로 옮겨 적으세요. NSPrivacyTracking이 true인데 목록이 비어 있으면 Apple이 거절하는 조합이에요.
SDK의 매니페스트만으로는 부족한가요?
네, 부족해요. TradaZen에서는 SDK 매니페스트가 완전했는데도 빌드가 거절됐어요. 앱의 매니페스트가 도메인 없이 추적을 선언했기 때문이에요. 앱 설정에서 추적을 선언하면 도메인도 나열해야 해요.
앱이 추적을 하지 않으면 어떻게 하나요?
설정에서 NSPrivacyTracking을 false로 바꾸고 도메인 목록을 지우세요. 그런 다음 App Store 페이지와 개인정보 처리방침이 같은 내용인지 확인하세요.
다시 빌드하지 않고 ITMS-91064를 고칠 수 있나요?
아니요. 개인정보 매니페스트는 Apple에 보내는 바이너리의 일부예요. 설정을 고치고 다시 빌드해서 제출해야 해요.