Ios mac应用程序中命令行工具上的应用程序传输策略
我正在构建一个cocoa touch框架,里面有一个mac应用程序(命令行工具/shell应用程序),这样我就可以在构建阶段构建iOS应用程序时调用它并执行一些东西 问题是,我添加到iOS项目的命令行目标没有任何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加
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
}
}
}