2016-03-02 14 views
149

我在選擇內部測試版本的時候收到了這條消息。它說關於設置ITSAppUsesNonExemptEncryption in info.plist這是什麼意思?有必要嗎?ITSAppUsesNonExemptEncryption出口合規性,而內部測試?

enter image description here

+3

如果你使用任何加密它的字面要求/如果你的應用程序被設計爲存儲安全信息加密。 – Andriko13

+1

截至2016年9月20日,這已不再需要。看到我的答案在這裏:http://stackoverflow.com/a/40391664/776167 - 你可以說你是免除的。 – hisnameisjimmy

回答

43

根據WWDC2015分佈Whats New

enter image description here

設置 「ITSAppUsesNonExemptEncryption」 中的info.plist爲 「NO」 的作品 罰款。如果您的應用中沒有加密內容。

enter image description here

我得到這個彈出在選擇建立內部測試我沒有列入我的info.plist「ITSAppUsesNonExemptEncryption」鍵,但仍然爲我工作。

即使我成功上傳的新應用程序沒有包含「ITSEncryptionExportComplianceCode」和「ITSAppUsesNonExemptEncryption」鍵。

而且Apple Doc.

重要提示:如果您的應用程序,您需要提供加密審查的新文件 ,您的應用程序不會有準備在商店出售 狀態,直到出口合規性審查和批准 您的文件。直到出口合規部門審覈並批准該應用程序後,該應用才能分發到售前測試 。

如果您的應用程序未使用加密,並且您不希望在提交時回答這些問題,則可以爲您的構建提供導出合規性信息。您還可以通過iTunes Connect提供新的或更新的文檔,以便在上傳到iTunes Connect之前接收適當的密鑰字符串值以包含在您的版本中。

要在iTunes Connect增加出口符合性文件:

轉到下功能的加密部分。 單擊相應平臺部分旁邊的加號。 正確回答問題。 提示時附加文件。 單擊保存。 您的文件將立即發送審查,您的文件的狀態將顯示在合規性審查。一個關鍵值也會自動生成,您可以將其包含在Info.plist文件中。有關在構建中包含關鍵值的更多信息,請參閱資源和幫助部分Trade Compliance。

您可以上傳沒有導出合規性密鑰的版本。如果您包含密鑰,則可能表示您不需要出口合規性文檔;這不需要批准。如果您包含引用特定出口合規性文件的密鑰,則該文件必須獲得批准;它不能在審查或拒絕。

enter image description here

您可以通過點擊文件的文件名,並選擇更多信息查看您隨時解答。如果您需要更新文檔或更改任何問題的答案,則需要重複上述步驟以添加與您的更改相符的新文檔。

+0

欲瞭解更多信息。 http://stackoverflow.com/questions/2135081/does-my-application-contain-encryption –

16

蘋果已經簡化了我們的建設過程中,所以你不需要每次都在同一個複選框,單擊。你可以通過編譯這個標誌到應用程序來簡化你的iTC流程。

33

添加在plist文件這個按鍵...一切都會好起來..

<key>ITSAppUsesNonExemptEncryption</key> 
<false/> 

只需粘貼之前</dict></plist>

140

基本上<key>ITSAppUsesNonExemptEncryption</key><false/>代表一個布爾值等於NO。

info.plist value

更新由@JosepH:該值意味着應用程序不使用加密,或者只免除加密。如果您的應用使用加密並且不能免除,則必須將此值設置爲YES/true。

有時,當一個應用程序被認爲使用加密時,它似乎有爭議。

+1

謝謝 - 這正是我正在尋找的(如何將此密鑰添加到圖形plist文件中) – Natalia

+2

將'ITSAppUsesNonExemptEncryption'設置爲false/NO並不意味着應用程序中的加密沒有更改。這意味着該應用程序不使用加密,或只使用免加密。如果您的應用程序使用加密並且不能免除,則必須將此值設置爲YES/true。很少有應用程序可以將其設置爲NO;例如,如果您的應用的任何部分使用https,則幾乎肯定需要說「是」。見http://stackoverflow.com/questions/2135081/does-my-application-contain-encryption – JosephH

+1

@約瑟夫好吧,非常感謝你的洞察力,的確你的信息似乎是正確的 –

7

基本上有兩件事需要記住。如果您的或者完全不使用加密或者您是豁免條例的一部分,則只允許將其設置爲NO。這適用於下列類型的應用:

來源:商會的:https://www.bis.doc.gov/index.php/policy-guidance/encryption/encryption-faqs#15

消費應用

  • 盜版和防盜軟件或音樂;
  • 音樂,電影,音樂/音樂,數碼照片 - 播放器,錄像機和組織者
  • 遊戲/遊戲 - 設備,運行系統軟件,HDMI和其他組件的接口,開發工具
  • 液晶電視,藍光/ DVD ,視頻點播(VoD),影院,數字視頻錄像機(DVR)/個人錄像機(PVR) - 設備,聯機 媒體指南,商業內容完整性和保護,HDMI和其他組件接口(非視頻會議)。
  • 打印機,複印機,掃描儀,數碼相機,攝像機互聯網 - 包括零件和子組件
  • 家用水電煤氣和器具

業務/應用系統:系統操作,集成和控制。一些例子

  • 業務流程自動化(BPA) - 過程的策劃和調度,供應鏈管理,庫存和交貨

  • 運輸 - 安全和維護,監控系統和車載控制器(包括航空,鐵路和商業 汽車系統),'智能高速公路'技術,公共運輸 操作和票價收集等。

  • 工業,製造或機械系統 - 包括機器人,工廠的安全,公用設施,工廠和其他重型設備, 設施系統的控制器,如火災報警器和HVAC

  • 醫療/護理 - 包括診斷應用,患者安排,以及醫療數據記錄保密

  • 施加地質 - 採礦/鑽孔,大氣採樣/天氣監測,映射/測量,水壩/水文

研究/科學/分析。一些例子:

  • 業務流程管理(BPM) - 業務流程的抽象和建模

  • 科學可視化/模擬/協同仿真(不包括計算,網絡,密碼分析等這樣的工具)

  • 數據綜合工具對社會,經濟和政治科學(如經濟,人口,全球氣候變化,輿論 投票等預測和建模)

安全的知識產權交付和安裝。一些例子

  • 軟件下載自動安裝和更新程序

  • 許可證密鑰產品的保護和類似購買驗證

  • 軟件和硬件設計的知識產權保護

  • 計算機輔助設計( CAD)軟件和其他繪圖工具

注:這些規定也適用於測試使用TestFlight

3

您的應用程序解決了這樣的

enter image description here

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); 
    } 

} 
+0

添加了一個相關的代碼行,以便dev可以用來添加必要的鍵 –

+0

明白了,刪除了我的評論。謝謝 –

3

同樣的錯誤蘋果已經改變了這個規則。我閱讀了所有的蘋果文檔以及我所能找到的許多美國出口區域。

我的觀點是直到最近甚至對大多數應用程序使用HTTPS意味着Apple將要求出口證書。一些應用程序如銀行業務可以,但對於許多應用程序,它們並不屬於非常廣泛的優秀類別。

但是蘋果公​​司現在已經在免費的類別中爲剛剛使用https的應用引入了getout。我不知道他們什麼時候這樣做,但我認爲這是2016年12月或2017年1月。我們現在提交的應用程序沒有美國政府的證書。

+0

鏈接到「離開」文檔?我無法確定HTTPS是否正常。 – gbhall

+0

@gbhall HTTPS不需要。你可以嘗試申請,你甚至不會通過GOV網站的申請表。 (不記得名字) –

+0

@Sneak OK歡呼的人。希望未來仍然如此。 – gbhall

5

從下拉列表中選擇,請開始鍵入下面一行:

應用程序使用非豁免加密