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