【问题标题】:Missing Compliance in Status when I add built for internal testing in Test Flight.How to solve?在试飞中添加内部测试时,状态中缺少合规性。如何解决?
【发布时间】:2016-06-20 20:21:45
【问题描述】:

当我使用 TestFlight 添加用于内部测试的最新版本时,我看到它处于“缺少合规性”状态。

这是一个大问题吗?为什么会出现这种情况?我该如何解决这个问题?

【问题讨论】:

    标签: ios iphone xcode app-store-connect testflight


    【解决方案1】:

    除非您的应用使用一些特殊的加密,否则您可以简单地将布尔密钥添加到您的 Info.plist,名称为 ITSAppUsesNonExemptEncryption 和值 false

    在代码中:

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

    如果您想改用 Xcode UI,请转到 Project > Target > Info 面板,添加一个新的“App Uses Non-Exempt Encryption”布尔键,其值为 NO

    如果您的应用使用自定义加密,那么您需要提供额外的法律文件并审核您的加密,然后才能选择构建。

    如果您继续选择该版本进行测试,它将手动询问合规性信息。选择“否”会为您提供上面的 plist 建议。

    这是 2015 年 WWDC 中宣布的更改,但我想它是最近才实施的。请参阅 thisthis 获取与出口合规性相关的 WWDC 会议记录,只需文本搜索“出口”即可。

    关于SO还有其他类似的问题,见:

    【讨论】:

    • 什么是特殊加密?使用 iOS 钥匙串存储用户信息算不算?
    • 在新的 iTunesConnect 下:顶部菜单 > 功能 > 加密
    • @mokagio 我正在使用 Https 连接来消耗应用程序的数据,所以我必须选择是并提交任何文件吗?
    • 我对我的 api 使用 https fetch 查询,我应该回答是还是否?这听起来像是棱镜合规性的一种形式。
    • 我的 macOS 应用程序上出现了这个警告,即使我的 plist 文件中的 ITSAppUsesNonExemptEncryption 设置为 NO。
    【解决方案2】:

    不再需要提交新版本或修改Info.plist;相反,请使用 Admin 或 App Manager 帐户执行以下步骤:

    1. 转到 TestFlight 左上角的 iOS 选项卡,然后单击警告旁边的黄色三角形,以在 iTunes Connect 中提供此信息:

    1. 点击弹出窗口中的“提供出口合规信息”链接:

    不过,如果您确实选择修改Info.plist,您将永远不需要再次处理此弹出窗口。

    【讨论】:

    • @am_ 我刚刚尝试过,它仍然有效。您只需单击弹出窗口中的“提供出口合规信息”链接。帖子已使用新屏幕截图进行了编辑。
    • 当我点击三角形时没有“提供出口合规信息”链接,我只是得到信息文本。
    • 原来是访问问题。我不是管理员(开发人员+其他人),我们的管理员是提交应用程序的人。我让我们的管理员在他的帐户中查看了它,他能够看到/单击“提供出口合规信息”链接来解决问题。
    • @RandyHill 感谢您提供的信息——我已经更新了我的答案,说明您需要成为管理员。
    • @am_ 只有具有管理员角色的用户才能看到链接
    【解决方案3】:

    如果您的 info.plist 显示为属性列表(而不是 xml),则您需要为密钥输入的文本是:
    App Uses Non-Exempt Encryption

    【讨论】:

      【解决方案4】:

      在您的Info.plist中,右键单击属性表,单击Add Row,添加键名App Uses Non-Exempt Encryption,键入Boolean并设置值NO

      【讨论】:

      • 需要右键单击属性表,然后单击“添加行”来执行此操作,我花了几分钟才找到 :)
      【解决方案5】:

      在您的Info.plist底部添加关注

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

      【讨论】:

        【解决方案6】:

        如果您在 api 调用中不使用 https,请在 info.plist 中添加此密钥“App Uses Non-Exempt Encryption”并将其设置为“NO”

        【讨论】:

        • 使用 URLSession 的 HTTPS 连接——免于出口文档上传要求。
        • 什么是 URLSession?我怎么知道我是否使用它?我正在使用带有 Fetch 请求的 React Native 应用程序,但我不知道 - 尝试搜索它。
        • @DrorBar 你最后在这里做什么?我也在使用 React Native(与 Expo),我不确定我应该在这里做什么。我正在通过 HTTPS 调用我的后端。
        • @DarrylYoung 我还没有找到具体的答案,但我很确定这类 HTTPS 调用不受加密要求的约束。您应该很好地添加密钥。
        • @DrorBar 感谢您的回复。保重。
        【解决方案7】:

        此外,如果您看不到“提供出口合规信息”按钮,请确保您的 App Store Connect 中有the right role 或与正确的人(帐户持有人、管理员或应用经理)交谈。

        【讨论】:

          【解决方案8】:
          1. 如果你已经发布到 Apple TestFlight 进行测试

            您必须每次点击链接并选择,然后您的测试人员才能看到构建。如果您想尽快交付构建,这会很烦人。

          2. 为下一次构建执行此操作,(如果在构建之前执行此操作,则不会发生此错误)

          ? 解决方案是将以下设置添加到您的 iOS Info.plist:

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

          无法添加“缺少合规性”,请参阅此Missing Compliance

          【讨论】:

            【解决方案9】:

            右击info.plist并选择open as然后点击Source Code 在文件的最后添加这一行 &lt;/dict&gt;标签

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

            并保存文件。

            【讨论】:

              【解决方案10】:

              我只是资助另一种方法来做同样的解决方法。因为我没有可能点击黄色三角形(即使我有管理员角色),当你进入 testflight 时,然后 iOS(在“构建”下)而不是黄色三角形点击版本号,另一个页面将打开您会在右上角找到添加合规信息之类的内容(对不起,如果我不完全准确,但我有意大利语版本,但它真的很容易找到)。即使你和我一样无法点击黄色三角形,你也可以这样做。

              【讨论】:

                猜你喜欢
                • 2017-09-09
                • 2018-07-21
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多