Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios mac应用程序中命令行工具上的应用程序传输策略_Ios_Xcode_Macos_Shell_Cocoa Touch - Fatal编程技术网

Ios mac应用程序中命令行工具上的应用程序传输策略

Ios mac应用程序中命令行工具上的应用程序传输策略,ios,xcode,macos,shell,cocoa-touch,Ios,Xcode,Macos,Shell,Cocoa Touch,我正在构建一个cocoa touch框架,里面有一个mac应用程序(命令行工具/shell应用程序),这样我就可以在构建阶段构建iOS应用程序时调用它并执行一些东西 问题是,我添加到iOS项目的命令行目标没有任何Info.plist文件,因此我创建了一个,但传输策略设置对其没有任何影响 下面是我的iOS应用程序构建日志的屏幕截图,正在尝试执行我的控制台应用程序: 要提高应用程序和web服务之间连接的安全性,连接必须遵循最佳实践(您的web服务请求应:1)使用HTTPS,2)使用TLS v1.2加

我正在构建一个cocoa touch框架,里面有一个mac应用程序(命令行工具/shell应用程序),这样我就可以在构建阶段构建iOS应用程序时调用它并执行一些东西

问题是,我添加到iOS项目的命令行目标没有任何
Info.plist
文件,因此我创建了一个,但传输策略设置对其没有任何影响

下面是我的iOS应用程序构建日志的屏幕截图,正在尝试执行我的控制台应用程序:

要提高应用程序和web服务之间连接的
安全性
,连接必须遵循最佳实践(您的web服务请求应:1)使用
HTTPS
,2)使用
TLS v1.2
加密,并具有前向保密性。)。请检查一下电话号码

正如您的屏幕截图(
LIVEUI
customshell脚本)所示,您使用的是不安全的web服务,因此您必须绕过应用程序传输安全行为。请按照以下步骤操作:-

  • 在Xcode中打开你的应用程序
  • 在Project Navigator中找到
    Info.plist
    文件,然后“鼠标右键”单击该文件,然后选择
    openas>Source code
    菜单选项
  • 将以下属性块放在主属性字典中(在第一个
    下)

NSAppTransportSecurity
N异常低安全Http负载

NSAllowsArbitraryLoads加载用于禁用应用程序传输的布尔值 NSExceptionDomains中未列出的任何域的安全性 字典。列出的域使用为该域指定的设置

默认值NO需要默认的应用程序传输安全性 所有连接的行为


请尝试将此字典配置为Appdelegate文件。
这是NSAppTransportSecurity的基本结构

NSAppTransportSecurity : Dictionary {

    NSAllowsArbitraryLoads : Boolean

    NSAllowsArbitraryLoadsInMedia : Boolean

    NSAllowsArbitraryLoadsInWebContent : Boolean

    NSAllowsLocalNetworking : Boolean

    NSExceptionDomains : Dictionary {

        <domain-name-string> : Dictionary {

            NSIncludesSubdomains : Boolean

            NSExceptionAllowsInsecureHTTPLoads : Boolean

            NSExceptionMinimumTLSVersion : String

            NSExceptionRequiresForwardSecrecy : Boolean   // Default value is YES

            NSRequiresCertificateTransparency : Boolean

        }

    }

}
NSAppTransportSecurity:字典{
NSAllowsArbitraryLoads:布尔值
NSAllowsArbitraryLoadsInMedia:布尔值
NSAllowsArbitraryLoadsInWebContent:布尔值
NSAllowsLocalNetworking:布尔值
NSExceptionDomains:字典{
:字典{
n包括多个域:布尔值
NSExceptionAllowsInsecureHTTPLoads:布尔值
NSExceptionMinimumTLSVersion:字符串
NSExceptionRequiresForwardSecretary:布尔//默认值为是
NSRequiresCertificateTransparency:布尔值
}
}
}
我不知道它是否有效,但让我们尝试一下。
您可以参考此信息。

希望这件事能起作用

试试我的代码它能帮你解决问题你需要显示你的Mac应用程序的Info.plist。听起来好像您添加了一个,并试图放入
NSAllowsArbitraryLoads
,但它不起作用。我们需要查看地图应用程序的设置以提供帮助。命令行工具没有
Info.plist
,建议编辑
Info.plist
文件的答案无效。您创建的是mac应用程序,而不是iPhone设备应用程序。这是我的误解。你有没有让它工作过?我还需要在命令行应用程序上设置应用程序传输安全性……正如@mttrb所述,“命令行工具没有Info.plist,建议编辑Info.plist文件的答案将不起作用。”(
NSAppTransportSecurity : Dictionary {

    NSAllowsArbitraryLoads : Boolean

    NSAllowsArbitraryLoadsInMedia : Boolean

    NSAllowsArbitraryLoadsInWebContent : Boolean

    NSAllowsLocalNetworking : Boolean

    NSExceptionDomains : Dictionary {

        <domain-name-string> : Dictionary {

            NSIncludesSubdomains : Boolean

            NSExceptionAllowsInsecureHTTPLoads : Boolean

            NSExceptionMinimumTLSVersion : String

            NSExceptionRequiresForwardSecrecy : Boolean   // Default value is YES

            NSRequiresCertificateTransparency : Boolean

        }

    }

}