[ios] 내부 테스트 중에 ITSAppUsesNonExemptEncryption 수출 규정 준수?

info.plist에서 ITSAppUsesNonExemptEncryption 을 설정하는 것에 대해 내부 테스트를 위해 빌드를 선택하는 동안이 메시지 가 나타납니다. 무슨 의미입니까? 그게 필요 할까?

여기에 이미지 설명을 입력하십시오



답변

기본적으로 <key>ITSAppUsesNonExemptEncryption</key><false/>NO와 같은 부울 값을 나타냅니다.

info.plist 값

@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>


답변

Apple은 제작 과정을 단순화했기 때문에 매번 같은 확인란을 클릭 할 필요가 없습니다. 이 플래그를 앱으로 컴파일하여 iTC 흐름을 간소화 할 수 있습니다.

2019 년 현재도 여전히 그렇습니다.


답변

드롭 다운에서 선택하려면 다음 줄을 입력하십시오.

비 면제 암호화를 사용하는 앱


답변

기본적으로 염두에 두 가지가 있습니다. 당신은 당신이 경우 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);
    }

}