2016-07-26 4 views
0

Параметры безопасности выглядят правильными, но по моему примеру приложение My React Native не подключается к серверу (ни при работе на устройстве iOS, ни в симуляторе).Безопасность при транспортировке приложений iOS: разрешить определенные IP-адреса в Info.plist

Сервер (IP-адрес и порт) отображается в сети, поэтому ошибка, вероятно, вызвана NSAppTransportSecurity внутри Info.plist. Перезапуск это не помогает.

Рабочее решение устанавливает NSAllowsArbitraryLoads на номер true, чтобы открыть адреса. Насколько мне известно, он предоставляет все IP-адреса и поэтому их следует избегать.

NSExceptionDomains, похоже, работает только с именами доменов, а не с IP-адресами.

Как открыть 10.10.0.16 и localhost IP-адреса и заблокировать все остальные?

Настройки приложения Транспорт Безопасность:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <false/> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>10.10.0.16</key> 
     <dict> 
      <key>NSTemporaryExceptionMinimumTLSVersion</key> 
      <string>TLSv1.1</string> 
      <key>NSTemporaryExceptionRequiresForwardSecrecy</key> 
      <false/> 
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
      <true/> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
     </dict> 
     <key>localhost</key> 
     <dict> 
      <key>NSTemporaryExceptionMinimumTLSVersion</key> 
      <string>TLSv1.1</string> 
      <key>NSTemporaryExceptionRequiresForwardSecrecy</key> 
      <false/> 
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
      <true/> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
     </dict> 
    </dict> 
</dict> 

консоли журнала:

2016-07-26 17:14:26.803 RNProject[80649:678556] NSMainNibFile and UIMainStoryboardFile are both set. NSMainNibFile ignored. 
2016-07-26 17:14:26:936 RNProject[80649:678556] styleString = styleFile 
2016-07-26 17:14:27.005 RNProject[80649:678837] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file. 
2016-07-26 17:14:27.021 RNProject[80649:678556] INFO: Reveal Server started (Protocol Version 25). 
2016-07-26 17:14:27.035 RNProject[80649:678556] Reachability: Reachable via WiFi 
2016-07-26 17:14:27.035 RNProject[80649:678556] Reach = Reachability: Reachable via WiFi 
2016-07-26 17:14:27.036 [fatal][tid:main] Could not connect to development server. 

Ensure the following: 
- Node server is running and available on the same network - run 'npm start' from react-native root 
- Node server URL is correctly set in AppDelegate 

URL: http://10.10.0.16:8081/index.ios.bundle?platform=ios&dev=true 
+0

Это только что началось со мной на этой неделе. Кажется, что это происходит с iOS 10.2 и выше. Отмечу, что в последней документации слово «Временный» больше не используется в именах ключей. https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33 Однако исправление названий ключей не устраняет проблема. Приложение, похоже, игнорирует список доменов. –

ответ

1

Казалось бы, единственным решением является установка <key>NSAllowsArbitraryLoads</key><true/> в разрабатываемой версии, чтобы загрузить React Родные библиотеки и переключить его в релиз.

 Смежные вопросы

  • Нет связанных вопросов^_^