info.plist에서 ITSAppUsesNonExemptEncryption 을 설정하는 것에 대해 내부 테스트를 위해 빌드를 선택하는 동안이 메시지 가 나타납니다. 무슨 의미입니까? 그게 필요 할까?
info.plist에서 ITSAppUsesNonExemptEncryption 을 설정하는 것에 대해 내부 테스트를 위해 빌드를 선택하는 동안이 메시지 가 나타납니다. 무슨 의미입니까? 그게 필요 할까?
답변:
기본적으로 <key>ITSAppUsesNonExemptEncryption</key><false/>
NO와 같은 부울 값을 나타냅니다.
@JosepH로 업데이트 :이 값은 앱이 암호화를 사용하지 않거나 암호화 만 면제 함을 의미합니다. 앱이 암호화를 사용하지만 면제되지 않은 경우이 값을 YES / true로 설정해야합니다.
앱이 암호화를 사용하는 것으로 간주 될 때 논쟁의 여지가있는 것 같습니다.
WWDC2015 배포에 따르면 Whats New
info.plist에서 "ITSAppUsesNonExemptEncryption"을 "NO"로 설정하면 제대로 작동합니다. 앱에 암호화 콘텐츠가없는 경우
내부 테스트를 위해 빌드를 선택할 때이 팝업이 나타났습니다. info.plist에 "ITSAppUsesNonExemptEncryption"키를 포함시키지 않았지만 여전히 효과가있었습니다.
새 애플리케이션을 성공적으로 업로드하더라도 "ITSEncryptionExportComplianceCode"및 "ITSAppUsesNonExemptEncryption"키가 포함되지 않았습니다.
또한 Apple Doc.
중요 : 앱에서 암호화 검토를 위해 추가 문서를 제공해야하는 경우 수출 규정 준수가 문서를 검토하고 승인 할 때까지 앱이 상점에서 판매 준비 상태가되지 않습니다. 수출 규정 준수가 검토하고 승인 할 때까지 시험판 테스트를 위해 앱을 배포 할 수 없습니다.
앱에서 암호화를 사용하지 않고 제출시 이러한 질문에 대답하지 않으려는 경우 빌드와 함께 수출 준수 정보를 제공 할 수 있습니다. iTunes Connect를 통해 새 문서 나 업데이트 된 문서를 제공하여 iTunes Connect에 업로드하기 전에 빌드에 포함 할 적절한 키 문자열 값을받을 수도 있습니다.
iTunes Connect에서 수출 규정 준수 설명서를 추가하려면 :
기능 아래의 암호화 섹션으로 이동하십시오. 해당 플랫폼 섹션 옆에있는 더하기 부호를 클릭하십시오. 질문에 적절히 대답하십시오. 메시지가 표시되면 파일을 첨부하십시오. 저장을 클릭하십시오. 그러면 문서가 즉시 검토를 위해 전송되고 문서 상태가 준수 검토에 표시됩니다. Info.plist 파일에 포함시킬 수있는 키 값도 자동으로 생성됩니다. 빌드에 키 값을 포함시키는 방법에 대한 자세한 내용은 리소스 및 도움말 섹션 Trade Compliance를 참조하십시오.
내보내기 규정 준수 키없이 빌드를 업로드 할 수 있습니다. 키를 포함하면 수출 규정 준수 문서가 필요하지 않음을 나타낼 수 있습니다. 이것은 승인이 필요하지 않습니다. 특정 수출 규정 준수 문서를 참조하는 키를 포함하는 경우 해당 문서는 승인되어야합니다. 검토 중이거나 거부 할 수 없습니다.
문서 파일 이름을 클릭하고 추가 정보를 선택하여 언제든지 답변을 검토 할 수 있습니다. 설명서를 업데이트하거나 질문에 대한 답변을 변경해야하는 경우 변경 사항에 해당하는 새 문서를 추가하려면 위 단계를 반복해야합니다.
plist 파일에이 키를 추가하십시오.
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
전에 붙여 넣기 </dict></plist>
기본적으로 염두에 두 가지가 있습니다. 당신은 당신이 경우 NO로 설정하도록 허용 하거나 전혀 암호화를 사용하지 않는 , 또는 당신은 면제 규정의 일부입니다 . 이것은 다음과 같은 종류의 응용 프로그램에 적용됩니다.
출처 : 상공 회의소 : https://www.bis.doc.gov/index.php/policy-guidance/encryption/encryption-faqs#15
소비자 응용
- 소프트웨어 또는 음악에 대한 불법 복제 및 도난 방지;
- 음악, 영화, 음악 / 음악, 디지털 사진 – 플레이어, 레코더 및 주최자
- 게임 / 게임 – 장치, 런타임 소프트웨어, HDMI 및 기타 구성 요소 인터페이스, 개발 도구
- LCD TV, Blu-ray / DVD, 주문형 비디오 (VoD), 영화, 디지털 비디오 레코더 (DVR) / 개인 비디오 레코더 (PVR) – 장치, 온라인 미디어 가이드, 상업용 컨텐츠 무결성 및 보호, HDMI 및 기타 구성 요소 인터페이스 (화상 회의가 아님);
- 프린터, 복사기, 스캐너, 디지털 카메라, 인터넷 카메라 – 부품 및 하위 어셈블리 포함
- 가정용 유틸리티 및 기기
비즈니스 / 시스템 애플리케이션 : 시스템 운영, 통합 및 제어. 몇 가지 예
비즈니스 프로세스 자동화 (BPA) – 프로세스 계획 및 스케줄링, 공급망 관리, 재고 및 배송
운송 – 안전 및 유지 보수, 시스템 모니터링 및 온보드 컨트롤러 (항공, 철도 및 상업용 자동차 시스템 포함), '스마트 하이웨이'기술, 대중 교통 운영 및 요금 징수 등
산업, 제조 또는 기계 시스템-로봇 공학, 공장 안전, 유틸리티, 공장 및 기타 중장비, 화재 경보 및 HVAC와 같은 시설 시스템 컨트롤러
의료 / 임상 – 진단 응용 프로그램, 환자 예약 및 의료 데이터 기록 기밀 유지
응용 지구과학 – 광업 / 시추, 대기 샘플링 / 날씨 모니터링, 매핑 / 측량, 댐 / 수 문학
연구 / 과학 / 분석. 몇 가지 예 :
비즈니스 프로세스 관리 (BPM) – 비즈니스 프로세스 추상화 및 모델링
과학적 시각화 / 시뮬레이션 / 공 시뮬레이션 (컴퓨팅, 네트워킹, 암호화 분석 등을위한 도구 제외)
사회, 경제 및 정치 과학을위한 데이터 합성 도구 (예 : 경제, 인구, 지구 기후 변화, 여론 조사 등 예측 및 모델링)
지적 재산 제공 및 설치 보안. 몇 가지 예
소프트웨어 다운로드 자동 설치 프로그램 및 업데이트 프로그램
라이센스 키 제품 보호 및 유사 구매 검증
소프트웨어 및 하드웨어 설계 IP 보호
CAD (Computer Aided Design) 소프트웨어 및 기타 제도 도구
참고 :이 규정은 다음을 사용하여 앱을 테스트 할 때도 적용됩니다. TestFlight
이와 같은 오류가 해결되었습니다.
using UnityEngine;
using System.Collections;
using UnityEditor.Callbacks;
using UnityEditor;
using System;
using UnityEditor.iOS.Xcode;
using System.IO;
public class AutoIncrement : MonoBehaviour {
[PostProcessBuild]
public static void ChangeXcodePlist(BuildTarget buildTarget, string pathToBuiltProject)
{
if (buildTarget == BuildTarget.iOS)
{
// Get plist
string plistPath = pathToBuiltProject + "/Info.plist";
var plist = new PlistDocument();
plist.ReadFromString(File.ReadAllText(plistPath));
// Get root
var rootDict = plist.root;
// Change value of NSCameraUsageDescription in Xcode plist
var buildKey = "NSCameraUsageDescription";
rootDict.SetString(buildKey, "Taking screenshots");
var buildKey2 = "ITSAppUsesNonExemptEncryption";
rootDict.SetString(buildKey2, "false");
// Write to file
File.WriteAllText(plistPath, plist.WriteToString());
}
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject)
{
//A new build has happened so lets increase our version number
BumpBundleVersion();
}
// Bump version number in PlayerSettings.bundleVersion
private static void BumpBundleVersion()
{
float versionFloat;
if (float.TryParse(PlayerSettings.bundleVersion, out versionFloat))
{
versionFloat += 0.01f;
PlayerSettings.bundleVersion = versionFloat.ToString();
}
}
[MenuItem("Leman/Build iOS Development", false, 10)]
public static void CustomBuild()
{
BumpBundleVersion();
var levels= new String[] { "Assets\\ShootTheBall\\Scenes\\MainScene.unity" };
BuildPipeline.BuildPlayer(levels,
"iOS", BuildTarget.iOS, BuildOptions.Development);
}
}
Apple은 이에 대한 규칙을 변경했습니다. 나는 모든 Apple 문서와 내가 찾은 미국 수출 규정을 많이 읽었습니다.
이것에 대한 나의 견해는 최근까지도 대부분의 앱에 HTTPS를 사용하더라도 Apple이 수출 인증서를 요구한다는 것을 의미했습니다. 뱅킹과 같은 일부 앱은 문제가되지 않지만 많은 앱의 경우 예외 범주에 포함되지 않은 매우 광범위합니다.
그러나 Apple은 이제 https를 사용하는 앱에 대해 면제 범주 아래에 getout을 도입했습니다. 언제이 작업을 수행했는지는 모르지만 2016 년 12 월 또는 2017 년 1 월이라고 생각합니다. 이제 미국 정부의 인증서없이 앱을 제출하고 있습니다.