검토를 위해 App Store Connect에 앱을 제출했습니다. 앱을 아직 검토 중이지만 오류를 수정해야한다는 내용의 이메일을 받았습니다. 메시지 내용은 다음과 같습니다.
친애하는 개발자,
최근 앱 XXXXX의 게재와 관련하여 하나 이상의 문제가 확인되었습니다. 배송이 완료되었지만 다음 배송시 다음 문제를 해결하고자 할 수 있습니다.
“Info.plist 파일에 누락 된 목적 문자열. 앱의 코드는 민감한 사용자 데이터에 액세스하는 하나 이상의 API를 참조합니다. 앱의 Info.plist 파일에는 앱이 필요한 이유를 명확하고 완전하게 설명하는 사용자 지향 목적 문자열이있는 NSLocationAlwaysUsageDescription 키가 포함되어야합니다. 2019 년 봄부터 사용자 데이터에 액세스하는 App Store에 제출 된 모든 앱에는 목적 문자열이 포함되어야합니다. 외부 라이브러리 또는 SDK를 사용하는 경우 목적 문자열이 필요한 API를 참조 할 수 있습니다. API를 사용하지 않을 경우 목적 문자열이 여전히 필요합니다 라이브러리 또는 SDK 개발자에게 문의하여 API가 포함되지 않은 코드 버전을 릴리스하도록 요청할 수 있습니다.
문제를 해결 한 후 Xcode 또는 Application Loader를 사용하여 새 바이너리를 iTunes Connect에 업로드 할 수 있습니다.
친애하는,
App Store 팀
내 응용 프로그램은 Expo로 완벽하게 구축되었으며 Info.plist에 액세스하고 수정하는 방법을 모르겠습니다.
어떤 생각?
답변
Expo를 사용하는 경우 infoPlist를 app.json에 다음과 같이 추가하여 solve를 추가 할 수 있습니다.
"expo": {
"ios": {
"bundleIdentifier": "com.app.myapp",
"infoPlist": {
"NSLocationAlwaysUsageDescription": "Some message to appease Apple.",
},
},
}
답변
2019 년 4 월 수정 : 2019 년 봄이 시작될 때이 두 키를 추가해야합니다. 참고 NSLocationAlwaysUsageDescription
현재 (아이폰 OS 11 이후) 사용되지 않으며 대체되었습니다 NSLocationAlwaysAndWhenInUseUsageDescription
및 NSLocationWhenInUseUsageDescription
. iOS 11보다 낮은 버전을 지원하려면 세 가지 값을 사용해야합니다.
요약하면 다음을 수행해야합니다.
- iOS 11 이상에
NSLocationAlwaysAndWhenInUseUsageDescription
AND 추가NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
iOS 10 이하를 지원하려면 추가 하십시오.- 마지막으로
NSLocationUsageDescription
iOS 8 이하를 지원 하려는 경우 추가 할 수 있습니다 .
이 메시지가 표시 되더라도 앱을 제출할 수 있습니다!
앱이 위치 기능을 사용하지 않더라도 어제 같은 문제에 직면했습니다. 이 선택적 기능이있는 프로젝트에 포함 된 일부 프레임 워크와 관련이있을 수 있습니다.
NSLocationAlwaysUsageDescription
및 NSLocationWhenInUseUsageDescription
키를 입력 하지 않아도 내 앱이 승인되었음을 확인할 수 있습니다 .info.plist
실제로 애플이 메일에서 언급 한 바와 같이 :
2019 년 봄부터 사용자 데이터에 액세스하는 App Store에 제출 된 모든 앱에는 목적 문자열이 포함되어야합니다.
따라서 할 일은 프로젝트 에이 키를 추가하여 (지금 당장 나아질 것이므로) 다음 업데이트에 포함될 것 입니다.
그냥 두 개의 새로운 항목을 추가 info.plist
하여, NSLocationAlwaysUsageDescription
그리고 NSLocationWhenInUseUsageDescription
키와 당신이 (당신이 정말로 … 사용하지 않는 경우에도) 값으로 그것들을 사용하는 이유에 대한 간단한 설명한다.
답변
스토어에 일부 앱이 있는데 품질 보증 버전을 배포하려고했는데 동일한 두 가지 앱에서 발생했습니다. 이것이 Appstore connect에 빌드 업로드를 허용하는 새로운 기준이라고 생각합니다.
해결책은 간단합니다. .plist 파일에 다음 줄을 추가하십시오.
<key>NSLocationAlwaysUsageDescription</key>
<string>custom message</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>custom message</string>
추신 : 필자의 경우 위치 기능을 사용하지 않았지만 Appstore 연결 지침을 준수하기 위해이 줄을 추가했습니다. Btw는 해당 이메일을받은 후 빌드에 문제가 있다고 말하더라도 앱을 테스트 할 수있었습니다.
나는 이것이 당신들에게 도움이되기를 바랍니다.
답변
위치를 사용하지 않더라도 애플의 새로운 요구 사항입니다. Xcode에서 권한을 추가하려면 “개인 정보-위치 사용 설명”및 “개인 정보-사용 위치 설명”을 찾아 각각에 대한 사용자 지정 문자열을 입력하십시오.
답변
더 단순화하기 위해 info.plist에이 줄을 추가 할 수 있습니다. 이러한 오류는 2019 년 봄부터 사용자 데이터에 액세스하는 App Store에 제출 된 모든 앱에 목적 문자열을 포함해야하기 때문에 발생합니다.
- info.plist를 소스 코드로여십시오.
-
plist에 다음 줄을 추가하십시오.
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key> <string>$(PRODUCT_NAME) needs Location access for "some reason"!</string> <key>NSLocationWhenInUseUsageDescription</key> <string>$(PRODUCT_NAME) needs Location access for "some reason"!</string> <key>NSLocationAlwaysUsageDescription</key> <string>$(PRODUCT_NAME) needs Location access for "some reason"!</string>
답변
NSLocationAlwaysUsageDescription 귀하의 위치는 xyz 혜택에 필요합니다 NSLocationWhenInUseUsageDescription 귀하의 위치는 xyz 혜택에 필요합니다
답변
동일한 이메일을 받았으며 CoreLocation을 전혀 사용하지 않습니다. 빠른 검색 후 Parse SDK가 CoreLocation을 사용할 수 있음을 발견했습니다. 애플의 이메일에서 그들은 분명히 다음과 같이 말합니다.
외부 라이브러리 또는 SDK를 사용하는 경우 목적 문자열이 필요한 API를 참조 할 수 있습니다.
즉, 코드 나 다른 라이브러리 또는 SDK가 CoreLocation을 사용할 수있는 순간을 의미합니다. 사용하지 않더라도 “사용 중”및 “항상 사용”에 대한 개인 정보 보호 설명을 제공해야합니다.
그것은 또한 Apple의 새로운 것이므로 지금은 경고 일뿐이지만 2019 년 봄부터 새로운 제출을 위해 필요합니다.
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)