请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

真机测试狗狗说启动问题

问题:

两种情景:

第一个情景没有问题。真机和安装app的macbook在同一个网络下:打开的时候,看到程序通过8081端口加载,程序正常运行,后台功能都没问题。把8081端口的窗口关闭,程序加载时候看到是通过pre-bundler加载,也是可以正常运行。


第二个情景问题来了。真机和安装app的macbook不在同一个网络下:

xcode安装后第一次会自动启动app,所有功能模块都可以正常运行。app关闭后,再打开就卡在刚开始的白屏幕(进入不了视频列表页面),大概10秒后闪退。无论打开几次都不行。

删除app,xcode重新安装,第一次启动依然正常。关闭app,重新打开问题依旧//img1.sycdn.imooc.com//szimg/5a7db52800014c5007501334.jpg

手机重启也不行,但是safari浏览器里面输入 app.biterbuy.info/api/creations是可以查看到数据库的内容的。

但是:

如果把真机的网络换成和macbook在同一个网络,就又回到第一个情景,正常了。


手机:iphone 7, 版本11.2 

后台:没有防火墙,pm2 部署正常,mongodb配置没有改且没有加管理员,godaddy的空间ubuntu 16, nginx装的最新版本

代码部分

infolist:http那里

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

或者换成下面的结果一样。

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

<key>NSExceptionDomains</key>

<dict>

<key>localhost</key>

<dict>

<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>

<true/>

</dict>

</dict>

</dict>


我把有http请求的代码截图给您看

//img1.sycdn.imooc.com//szimg/5a7db7730001730021841126.jpg

//img1.sycdn.imooc.com//szimg/5a7db7760001375523240940.jpg

//img1.sycdn.imooc.com//szimg/5a7db77600017b1024921168.jpg

谢谢大神

正在回答 回答被采纳积分+3

3回答

提问者 JerseyJerry 2018-02-12 11:46:36

情况如下:

代码如截图,就一个功能 request.get。

代码如下:https://github.com/coinmini/RN_Fetch_Test

这次直接用了聚合数据的HTTPS的api,模拟器可以正常获取和渲染。

问题来了,真机测试时,如果和跑xcode的电脑在同一个wifi下,真机可以获取https的内容,正常渲染。

但是如果真机换一个wifi网络,或者用4g,还是卡在启动界面,过6秒程序闪退。

 手机: iphone 7 , ios 11.2

//img1.sycdn.imooc.com//szimg/5a810dee0001c21417360790.jpg

//img1.sycdn.imooc.com//szimg/5a810e14000128be23061420.jpg


0 回复 有任何疑惑可以回复我~
  • Scott #1
    你把代码改成你正式的地址后,用 xcode 打一个 ipa 包,上传到蒲公英,然后用蒲公英提供的二维码下载安装,来模拟下真实环境下,会不会出现闪退,闪退的原因因为是 请求挂掉或者超时后的 err 未做捕获,你可以在代码层面捕获一下,然后再失败后,重连一次,但是不要反复重连,控制下重连次数,以免死循环
    回复 有任何疑惑可以回复我~ 2018-02-12 22:19:10
  • 提问者 JerseyJerry #2
    这次搞定了。原因是打包的地方,AppDelegate.m里面,替换
      jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
    忘记做了,坑了哈。蒲公英做adhoc都没问题了。谢谢scott哈
    回复 有任何疑惑可以回复我~ 2018-02-13 14:44:13
Scott 2018-02-12 10:37:30

对,全部用 https 协议吧,iOS 现在认 https 协议

0 回复 有任何疑惑可以回复我~
  • 提问者 JerseyJerry #1
    Scott你好,今天单独测试了RN里的fetch功能。发现还是有问题。麻烦您看下我再添加的回答。拜托
    回复 有任何疑惑可以回复我~ 2018-02-12 11:26:06
提问者 JerseyJerry 2018-02-11 20:12:04

折腾出来了:infolist里面把用到的所有的域名都加入到NSExceptionDomains。或者干脆全部用https的协议

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信