美文网首页
macOS开发之网络请求报错

macOS开发之网络请求报错

作者: chasitu | 来源:发表于2020-12-09 14:40 被阅读0次

在iOS和macOS开发中使用的网络请求类都是NSURLSession,所以在macOS开发中我们直接使用在iOS开发中使用的AFNetworking第三方框架就可以了,今天刚开始使用就遇到了一个问题,未能找到使用指定主机名的服务器,下面截图

问题:按照以往的经验来分析的话这个错误应该是域名解析出错了,实际上是macOS项目中沙盒访问权限设置导致的错误

小伙伴们看着这个问题是不是很奇葩,这里不说info.plist文件里面设置App Transport Security Settings了啊,一般这种错误多数人都是知道的不会犯的

解决

  1. 首先在macOS项目中找到.entitlements结尾的plist文件
  2. 选择App Sandbox选项,设置为NO就可以了,然后网络请求就恢复正常了

今天上线macOS项目的时候找到原因了,补充一下

macOS10.14(网上有人说的,未求证)开始苹果官方要求所有macOS客户端都必须遵守沙盒协议,就是上面截图的那个文件,当时我关闭了沙盒网络请求恢复了,可是上线报错了,错误如下
App sandbox not enabled. The following executables must include the "com.apple.security.app-sandbox" entitlement with a Boolean value of true in the entitlements property list: [( "net.tangce.student.pkg/Payload/Tangce_macOS.app/Contents/MacOS/Tangce_macOS" )] Refer to App Sandbox page at https://developer.apple.com/documentation/security/app_sandbox for more information on sandboxing your app. With error code STATE_ERROR.VALIDATION_ERROR.90296 for id 20e6c9f2-6e2f-478f-b691-c54db13eb186
大概意思就是必须遵守沙盒协议,可是遵守了就不能联网了,简单说一下沙盒协议,就是类似plist文件的形式上传请求各项权限,跟我们iOS单独请求相机相册权限一样,沙盒权限的bool值就相当于总开关,必须打开

解决

  1. 首先沙盒总开关肯定是要打开的
  2. 第二步单独申请网络权限,这里不是iOS的ATS,如下图


完结

相关文章

网友评论

      本文标题:macOS开发之网络请求报错

      本文链接:https://www.haomeiwen.com/subject/ygshgktx.html