获取(或Axios公司)的反应本地不工作的世博会对于iOS应用

问题描述:

的iOS不允许导航到http仅网址,只允许HTTPS。获取(或Axios公司)的反应本地不工作的世博会对于iOS应用

有一个解决方案,它正在改变一些代码Info.plist文件内

https://github.com/facebook/react-native/issues/8717

如何更改设置适用于iOS,因为它配备了只有.expo文件夹,但没有别的。

我需要在最后更改服务器配置呢? :(

你正确地找出来,问题是,iOS的不允许非安全(http只)域任意调用。这是为了推到开发商更安全的连接与iOS 9中引入的功能。

按本(2017年中期)的写作,有解决方法。您应该打开

{你的项目}/IOS/{您的项目} /Info.plist

并为您定位的域设置适当的值(docs)。

下面的例子将禁用ATS和允许HTTP调用somedomain.com

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>localhost</key> 
      <dict> 
       <key>NSExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
      </dict> 
     </dict> 
    </dict> 

在你的情况,我相信你正在寻找在错误的地方Info.plist文件。它不是节点模块的一部分,而是查看上面指定的ios路径。

+2

我知道我在找什么。但似乎我正在寻找一些根本不存在的东西。世博项目隐藏本地文件的构建和环境。所以没有地方可以搜索info.plist – Zafta

不幸的是世博会不允许你修改应用程序传输安全设置,但在配置选项可以烤。 Here's a Github thread

你可以从eject世博会,但只有这样做,如果你是100%肯定。

这会给你非常相似,一个由反应本土的init

此设有iosandroid目录中创建一个项目,导航到ios/YourProject/将揭示Info.plist

需要多少挣扎的是安装在服务器上的SSL证书?这样做可能更有益,您可以使用免费服务,如letsencrypt

+0

不,我现在真的不想弹出,但为什么这是一个小故障,如果使用fetch是开发人员对ios和android的基本要求。 大多数本地主机服务器不是ssl加密的。应该添加它,因为它似乎是一个普遍问题。 – Zafta

+1

这与'fetch'无关,通过https进行通信是Apple强制执行的操作。 https://developer.apple.com/news/?id=12212016b – Dan

+0

是的,我的意思是像抓取或Axios一般的通信方法。在临时或本地主机环境中应该有这方面的锻炼。:/ – Zafta