# ITMS-91064 오류 해결 방법

> ITMS-91064는 개인정보 매니페스트의 추적 키 두 개가 서로 맞지 않는다는 뜻이에요. 두 키를 맞추고 다시 빌드하면 돼요.

원본 페이지: [ITMS-91064 오류 해결 방법](https://devoria.fr/ko/blog/itms-91064-invalid-tracking-information-fix)
작성자: [Mehdi Azizi](https://devoria.fr/ko/mehdi-azizi)
게시일: 2026-10-16
최종 내용 수정: 2026-10-16


ITMS-91064는 빌드를 올린 뒤 Apple이 이메일로 보내는 자동 거절이에요. 개인정보 매니페스트에 있는 추적 관련 키 두 개가 서로 모순된다는 뜻이에요. **해결 방법은 `NSPrivacyTracking`과 `NSPrivacyTrackingDomains`를 서로 맞춘 다음** 다시 빌드하는 거예요.

저는 트레이딩 연습 앱인 TradaZen에 광고 측정 도구를 붙인 뒤에 이 오류를 받았어요. 원인과 해결 방법을 정리해 볼게요.

## ITMS-91064 오류는 무슨 뜻인가요?

메시지 제목은 "ITMS-91064: Invalid tracking information"이에요. 대상은 `PrivacyInfo.xcprivacy` 파일, 즉 앱과 SDK마다 하나씩 포함할 수 있는 개인정보 매니페스트예요. 이 파일에는 App Tracking Transparency 기준의 추적과 관련된 키 두 개가 들어 있어요.

- `NSPrivacyTracking`: 앱이나 SDK가 데이터를 추적에 사용하면 true예요.
- `NSPrivacyTrackingDomains`: 추적을 위해 접속하는 도메인 목록이에요.

Apple은 [잘못된 매니페스트](https://developer.apple.com/documentation/technotes/tn3181-debugging-invalid-privacy-manifest)에 관한 기술 노트에서 거절되는 조합 세 가지를 설명해요.

- `NSPrivacyTracking`이 true인데 도메인 목록이 비어 있는 경우. 목록을 채워야 해요. 제 경우가 이거였어요.
- `NSPrivacyTracking`이 true인데 도메인 하나가 잘못 적힌 경우. 도메인에는 경로나 끝 슬래시를 붙이지 않아요.
- `NSPrivacyTracking`이 false인데 도메인이 나열된 경우. 목록을 지워야 해요.

기본 규칙은 [개인정보 매니페스트](https://developer.apple.com/documentation/bundleresources/privacy-manifest-files) 문서에 있어요. `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의 개인정보 문서](https://docs.expo.dev/guides/apple-privacy/)에, 키는 [설정 레퍼런스](https://docs.expo.dev/versions/latest/config/app/)에 있어요.

1. **SDK의 추적 도메인을 찾아요.** 온라인에 있는 최신 버전이 아니라, 빌드에 포함된 버전의 매니페스트에서 목록을 그대로 옮겨 적으세요. 버전마다 다를 수 있어요. 지어내면 안 돼요.
2. **설정에 추가해요.** 아래 두 도메인은 바꿔 넣어야 할 예시예요.

```json
{
  "expo": {
    "ios": {
      "privacyManifests": {
        "NSPrivacyTracking": true,
        "NSPrivacyTrackingDomains": [
          "example-tracking-domain.com",
          "another-tracking-domain.com"
        ]
      }
    }
  }
}
```

3. **비용이 드는 빌드 전에 생성된 파일을 확인해요.** `ios` 폴더가 Expo로 생성되고 git에서 무시되는 경우에 해당해요. `npx expo prebuild -p ios`를 실행한 뒤 `ios` 폴더에 생성된 `PrivacyInfo.xcprivacy` 파일을 열어 보세요. `NSPrivacyTracking`이 `true`이고 도메인 목록이 전부 들어 있어야 해요.
4. **다시 빌드해서 제출해요.** 매니페스트는 바이너리의 일부라서 원격 업데이트로는 바뀌지 않아요.

3단계는 주의하세요. 이 명령은 `ios` 폴더를 지우고 다시 만들 수 있어요. 그 안을 직접 수정했다면 프로젝트에서 바로 실행하지 말고 복사본에서 작업하세요.

앱이 추적을 전혀 하지 않는다면 더 간단해요. `NSPrivacyTracking`을 `false`로 바꾸고 목록을 지우면 돼요.

## 이 도메인들이 사용자에게 미치는 영향

도메인 선언은 형식적인 절차가 아니에요. Apple 문서에 따르면, 사용자가 App Tracking Transparency 창에서 추적을 허용하지 않으면 이 도메인으로 가는 요청은 실패해요. 의도된 동작이에요. 사용자가 동의했을 때만 추적이 이뤄지는 거죠.

App Store 페이지도 같은 내용을 말해야 해요. 매니페스트에서 추적을 선언했다면 페이지의 개인정보 신고와 개인정보 처리방침에도 그 내용이 있어야 해요. 그렇지 않으면 나중에 가이드라인 5.1.1이나 5.1.2로 리뷰어에게 거절당할 수 있어요. 자세한 내용은 [앱 개인정보 처리방침](https://devoria.fr/ko/blog/ios-app-privacy-policy-guide)에 있어요.

## 문제없이 빌드 제출하기

ITMS 오류는 읽는 법만 알면 금방 고쳐요. 그 뒤에 오는 거절은 좀 더 차분히 봐야 해요. 대응 방법은 [Apple에 거절된 앱](https://devoria.fr/ko/expertise/app-rejected-by-apple) 페이지에, 가장 흔한 거절 사유는 [Apple이 앱을 거절하는 이유](https://devoria.fr/ko/blog/app-store-rejection-reasons-real-cases)에 정리해 뒀어요.

제출 전에 점검하고 싶다면 [Apple Review Kit](https://devoria.fr/ko/kits/review-apple)에 제 체크리스트와 프로젝트를 검토해 주는 Claude Code 스킬을 담아 뒀어요. 제출이 막혀서 사람의 눈이 필요하다면 [저와 한 시간 예약하세요](https://devoria.fr/ko/coaching). 화상으로 화면을 보면서 프로젝트를 같이 살펴봐요. 첫 출시를 준비 중이라면 [무료 진단을 받아 보세요](https://devoria.fr/ko/diagnostic). 단계를 순서대로 정리해 주고 Apple 거절 방지 체크리스트도 보내 드려요.

## 자주 묻는 질문

### ITMS-91064는 App Review 거절인가요?

사람 리뷰어의 거절이라는 의미에서는 아니에요. 빌드를 올릴 때, 심사 전에 자동으로 하는 검사예요. 빌드는 제외되니까 개인정보 매니페스트를 고치고 새 빌드를 보내야 해요.

### NSPrivacyTrackingDomains에는 무엇을 넣어야 하나요?

앱이나 SDK가 추적을 위해 접속하는 도메인이에요. 빌드에 포함된 버전의 SDK 매니페스트에 나와 있는 도메인을 그대로 옮겨 적으세요. `NSPrivacyTracking`이 `true`인데 목록이 비어 있으면 Apple이 거절하는 조합이에요.

### SDK의 매니페스트만으로는 부족한가요?

네, 부족해요. TradaZen에서는 SDK 매니페스트가 완전했는데도 빌드가 거절됐어요. 앱의 매니페스트가 도메인 없이 추적을 선언했기 때문이에요. 앱 설정에서 추적을 선언하면 도메인도 나열해야 해요.

### 앱이 추적을 하지 않으면 어떻게 하나요?

설정에서 `NSPrivacyTracking`을 `false`로 바꾸고 도메인 목록을 지우세요. 그런 다음 App Store 페이지와 개인정보 처리방침이 같은 내용인지 확인하세요.

### 다시 빌드하지 않고 ITMS-91064를 고칠 수 있나요?

아니요. 개인정보 매니페스트는 Apple에 보내는 바이너리의 일부예요. 설정을 고치고 다시 빌드해서 제출해야 해요.


## 내 프로젝트

[Apple Review Kit](https://devoria.fr/ko/kits/review-apple): 제가 쓰는 App Store 심사 체크리스트, 수정한 Apple 리젝 사례, 심사자용 메모, 앱을 검토하는 Claude Code skill 두 개. 29 €.

[iOS Kit](https://devoria.fr/ko/kits/ios): Claude Code로 iPhone 앱을 만드세요. 제 앱들의 Starter Code, 작업을 검사하는 skill, Apple Review Kit, App Store Screenshots Kit, ASO Kit 포함. 129,99 €.
