Ios 当';假';连接可用

Ios 当';假';连接可用,ios,crash,wifi,reachability,sttwitter,Ios,Crash,Wifi,Reachability,Sttwitter,我正在开发一个应用程序,允许用户使用STTwitter库查看公共twitter提要(见下面的代码) 当我关闭笔记本电脑上的wifi时,应用程序进入错误块,一切正常,用户会收到一条警报,表示连接不可用 但是,由于我使用的是wifi热点(如bt openzone),需要登录,当我重新打开wifi并且不登录(意味着我无法访问互联网)时,应用程序认为它可以访问互联网,并试图访问twitter api,然后崩溃 我已经尝试使用“可达性”来确定天气是否可用互联网(见下文) 然而,这并没有起作用 苹果会因为这

我正在开发一个应用程序,允许用户使用STTwitter库查看公共twitter提要(见下面的代码)

当我关闭笔记本电脑上的wifi时,应用程序进入错误块,一切正常,用户会收到一条警报,表示连接不可用

但是,由于我使用的是wifi热点(如bt openzone),需要登录,当我重新打开wifi并且不登录(意味着我无法访问互联网)时,应用程序认为它可以访问互联网,并试图访问twitter api,然后崩溃

我已经尝试使用“可达性”来确定天气是否可用互联网(见下文)

然而,这并没有起作用

苹果会因为这样的原因拒绝我的应用程序吗

有没有办法阻止这种情况发生

谢谢你的帮助:)

编辑

2014-01-22 08:58:02.268 SWIP[384:a0b] Reachability Flag Status: -R -----l- networkStatusForFlags
2014-01-22 08:58:02.268 SWIP[384:a0b] ***INTERNET AVAILABLE****
2014-01-22 08:58:11.090 SWIP[384:a0b] Reachability Flag Status: -R -----l- networkStatusForFlags
2014-01-22 08:58:11.091 SWIP[384:a0b] ***INTERNET AVAILABLE****
2014-01-22 08:58:17.295 SWIP[384:a0b] *** Terminating app due to uncaught exception   'NSUnknownKeyException', reason: '[<__NSCFString 0xbc47e00> valueForUndefinedKey:]: this class  is not key value coding-compliant for the key token_type.'
*** First throw call stack:
(
0   CoreFoundation                      0x029205e4 __exceptionPreprocess + 180
1   libobjc.A.dylib                     0x026a38b6 objc_exception_throw + 44
2   CoreFoundation                      0x029b06a1 -[NSException raise] + 17
3   Foundation                          0x023648ca -[NSObject(NSKeyValueCoding)   valueForUndefinedKey:] + 282
4   Foundation                          0x022d1921 _NSGetUsingKeyValueGetter + 81
5   Foundation                          0x022d0f5b -[NSObject(NSKeyValueCoding)   valueForKey:] + 260
6   SWIP                                0x0000375f __65-[STTwitterAppOnly   verifyCredentialsWithSuccessBlock:errorBlock:]_block_invoke + 191
7   SWIP                                0x00005e8d __109-[STTwitterAppOnly   postResource:baseURLString:parameters:useBasicAuth:progressBlock:successBlock:errorBlock:]_block_invoke156 + 173
8   SWIP                                0x00037231 __121+[STHTTPRequest(STTwitter)   twitterRequestWithURLString:stTwitterProgressBlock:stTwitterSuccessBlock:stTwitterErrorBlock:] _block_invoke48 + 449
9   SWIP                                0x00046255 -[STHTTPRequest  connectionDidFinishLoading:] + 517
10  Foundation                          0x0246db59  ___NSURLConnectionDidFinishLoading_block_invoke + 40
11  Foundation                          0x024043e1 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke + 62
12  Foundation                          0x0228ca6e -[NSURLConnectionInternalConnection invokeForDelegate:] + 119
13  Foundation                          0x0228c9d6 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 208
14  Foundation                          0x0228c8e8 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 76
15  Foundation                          0x0228cc98 _NSURLConnectionDidFinishLoading +    43
16  CFNetwork                           0x00c78e6f ___ZN27URLConnectionClient_Classic26_delegate_didFinishLoadingEU13block_pointerFvvE_block_invoke + 111
17  CFNetwork                           0x00c76bac ___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 104
18  CFNetwork                           0x00cc10ef ___ZNK17CoreSchedulingSet13_performAsyncEPKcU13block_pointerFvvE_block_invoke + 25
19  CoreFoundation                      0x028c1d59 CFArrayApplyFunction + 57
20  CFNetwork                           0x00be05af _ZN19RunloopBlockContext7performEv   + 139
21  CFNetwork                           0x00cc16d2   _ZThn16_N19RunloopBlockContext24multiplexerClientPerformEv + 20
22  CFNetwork                           0x00be03dd _ZN17MultiplexerSource7performEv +  299
23  CFNetwork                           0x00be01f2 _ZN17MultiplexerSource8_performEPv    + 76
24  CoreFoundation                      0x028a983f   __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
25  CoreFoundation                      0x028a91cb __CFRunLoopDoSources0 + 235
26  CoreFoundation                      0x028c629e __CFRunLoopRun + 910
27  CoreFoundation                      0x028c5ac3 CFRunLoopRunSpecific + 467
28  CoreFoundation                      0x028c58db CFRunLoopRunInMode + 123
29  GraphicsServices                    0x0345c9e2 GSEventRunModal + 192
30  GraphicsServices                    0x0345c809 GSEventRun + 104
31  UIKit                               0x01411d3b UIApplicationMain + 1225
32  SWIP                                0x0000670d main + 141
33  libdyld.dylib                       0x031b2725 start + 0
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 
2014-01-22 08:58:02.268 SWIP[384:a0b]可达性标志状态:-R---l-网络状态ForFlags
2014-01-22 08:58:02.268 SWIP[384:a0b]***可上网****
2014-01-22 08:58:11.090 SWIP[384:a0b]可达性标志状态:-R---l-网络状态ForFlags
2014-01-22 08:58:11.091 SWIP[384:a0b]***互联网可用****
2014-01-22 08:58:17.295 SWIP[384:a0b]***由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类不符合密钥令牌类型的密钥值编码。”
***第一次抛出调用堆栈:
(
0 CoreFoundation 0x029205e4例外预处理+180
1 libobjc.A.dylib 0x026a38b6 objc_异常_抛出+44
2芯基础0x029b06a1-[N异常升高]+17
3基金会0x023 648 CA -[NSObjuts:NSKEY ValueCudid)ValueFunDealdKEY::+ 282
4基金会0x022D1921,NoGestUsKiValueGeTeter + 81
5基金会0x022D0F5B-[ NSObjices(NSKEY ValueCudid)ValueFoiKe:] + 260
6 SWIP 0x0000375f__65-[STTwitterAppOnly用成功块验证凭证:errorBlock:][u block_invoke+191
7 SWIP 0x00005e8d _109-[STTwitterAppOnly postResource:baseURLString:parameters:useBasicAuth:progressBlock:successBlock:errorBlock:][u block_invoke156+173
8 SWIP 0x00037231 u_121+[STHTTPRequest(STTwitter)twitterRequestWithURLString:stTwitterProgressBlock:stTwitterSuccessBlock:stTwitterErrorBlock:][u block_invoke48+449
9 SWIP 0x00046255-[STHTTPRequest ConnectionIDFinishLoading:][517
10基金会0x0246dB59,nnull连接完成FixIdLoad BosikPosik+ 40
11基金会0x024043E1Y-65-- [ NSURLCONNECTIONIONION CONNECTIONANDATION::] BIOBILIKEKE+ 62
12基金会0x0228 CA6E - [ NSURLCONNECTIONION CONNEKPROFICONDATABATE:] + 119
13基金会0x0228 C9D6- [ NSURLCONNECTIONIONION连接和委托:OnLyActudie:] + 208
14基金会0x0228 C8E8- [ NSURLCONNECTIONION Actudio EngEnnCnEngand和委托:] + 76
15基金会0x0228 cc98,nSnLink连接FixIsHead+43
16 CFNetwork 0x00c78e6f\uuuuuuuuuzn27URLConnectionClient\u Classic26\u委托\u完成加载EU13块\u指针Vve\u块\u调用+111
17 CFNetwork 0x00c76bac\uuuuuuuuuuuzn27URLConnectionClient\u Classic18\u带DelegateAsyncepKCu13块\u指针VP16\u CFURLConnectionPK33CFURLConnectionClient当前\u VMaxE\u块\u调用\u 2+104
18 CFNetwork 0x00cc10ef\uuuuuuuuu ZNK17CoreSchedulingSet13\u性能SyncepkCu13块\u指针Vve\u块\u调用+25
19 CoreFoundation 0x028c1d59 CFArrayApplyFunction+57
20 CFNetwork 0x00be05af_ZN19RunloopBlockContext7performEv+139
21 CFNetwork 0x00cc16d2\u ZThn16\u N19运行环块上下文24多路复用器客户端性能V+20
22 CFNetwork 0x00be03dd_ZN17多路复用器资源7性能+299
23 CFNetwork 0x00be01f2 _zn17多路复用器资源8_性能PV+76
24 CoreFoundation 0x028a983f\uuuu CFRUNLOOP\u正在调用\uu OUT\uu以执行\uu功能\uuuu+15
25 CoreFoundation 0x028a91cb__CFRunLoopDoSources0+235
26 CoreFoundation 0x028c629e _ucfrunlooprun+910
27 CoreFoundation 0x028c5ac3 CFRunLoopRunSpecific+467
28 CoreFoundation 0x028c58db CFRUNLOOPSRUNINMODE+123
29图形服务0x0345c9e2 GSEventRunModal+192
30个图形服务0x0345c809 GSEventRun+104
31 UIKit 0x0141D3B UIApplicationMain+1225
32 SWIP 0x0000670d干管+141
33 libdyld.dylib 0x031b2725开始+0
)
libc++abi.dylib:以NSException类型的未捕获异常终止
(lldb)
也许不会,但它应该。您正在证明一个正在崩溃的应用程序,并且您知道这一点。至于wifihotspot,我发现很难相信您不能使用可达性来实现它,因为这段代码出现在许多地方

,及

您可以进行另一项测试,而不是上述解决方案:

[Reachability reachabilityWithHostname: @"http://www.google.com"]

我确认这是STTwitter库中的崩溃

我刚推了一个补丁:


如果您遇到任何进一步的问题,请告诉我。

谢谢您的快速回复。我不打算按原样提交。至于这些帖子,我已经看过并尝试过了,但都出现了相同的问题。STTwitter库不应该在网络条件发生变化时崩溃。如果您发布崩溃堆栈跟踪,我们将能够告诉您要修复的内容。@nst请参阅堆栈跟踪
2014-01-22 08:58:02.268 SWIP[384:a0b] Reachability Flag Status: -R -----l- networkStatusForFlags
2014-01-22 08:58:02.268 SWIP[384:a0b] ***INTERNET AVAILABLE****
2014-01-22 08:58:11.090 SWIP[384:a0b] Reachability Flag Status: -R -----l- networkStatusForFlags
2014-01-22 08:58:11.091 SWIP[384:a0b] ***INTERNET AVAILABLE****
2014-01-22 08:58:17.295 SWIP[384:a0b] *** Terminating app due to uncaught exception   'NSUnknownKeyException', reason: '[<__NSCFString 0xbc47e00> valueForUndefinedKey:]: this class  is not key value coding-compliant for the key token_type.'
*** First throw call stack:
(
0   CoreFoundation                      0x029205e4 __exceptionPreprocess + 180
1   libobjc.A.dylib                     0x026a38b6 objc_exception_throw + 44
2   CoreFoundation                      0x029b06a1 -[NSException raise] + 17
3   Foundation                          0x023648ca -[NSObject(NSKeyValueCoding)   valueForUndefinedKey:] + 282
4   Foundation                          0x022d1921 _NSGetUsingKeyValueGetter + 81
5   Foundation                          0x022d0f5b -[NSObject(NSKeyValueCoding)   valueForKey:] + 260
6   SWIP                                0x0000375f __65-[STTwitterAppOnly   verifyCredentialsWithSuccessBlock:errorBlock:]_block_invoke + 191
7   SWIP                                0x00005e8d __109-[STTwitterAppOnly   postResource:baseURLString:parameters:useBasicAuth:progressBlock:successBlock:errorBlock:]_block_invoke156 + 173
8   SWIP                                0x00037231 __121+[STHTTPRequest(STTwitter)   twitterRequestWithURLString:stTwitterProgressBlock:stTwitterSuccessBlock:stTwitterErrorBlock:] _block_invoke48 + 449
9   SWIP                                0x00046255 -[STHTTPRequest  connectionDidFinishLoading:] + 517
10  Foundation                          0x0246db59  ___NSURLConnectionDidFinishLoading_block_invoke + 40
11  Foundation                          0x024043e1 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke + 62
12  Foundation                          0x0228ca6e -[NSURLConnectionInternalConnection invokeForDelegate:] + 119
13  Foundation                          0x0228c9d6 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 208
14  Foundation                          0x0228c8e8 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 76
15  Foundation                          0x0228cc98 _NSURLConnectionDidFinishLoading +    43
16  CFNetwork                           0x00c78e6f ___ZN27URLConnectionClient_Classic26_delegate_didFinishLoadingEU13block_pointerFvvE_block_invoke + 111
17  CFNetwork                           0x00c76bac ___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 104
18  CFNetwork                           0x00cc10ef ___ZNK17CoreSchedulingSet13_performAsyncEPKcU13block_pointerFvvE_block_invoke + 25
19  CoreFoundation                      0x028c1d59 CFArrayApplyFunction + 57
20  CFNetwork                           0x00be05af _ZN19RunloopBlockContext7performEv   + 139
21  CFNetwork                           0x00cc16d2   _ZThn16_N19RunloopBlockContext24multiplexerClientPerformEv + 20
22  CFNetwork                           0x00be03dd _ZN17MultiplexerSource7performEv +  299
23  CFNetwork                           0x00be01f2 _ZN17MultiplexerSource8_performEPv    + 76
24  CoreFoundation                      0x028a983f   __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
25  CoreFoundation                      0x028a91cb __CFRunLoopDoSources0 + 235
26  CoreFoundation                      0x028c629e __CFRunLoopRun + 910
27  CoreFoundation                      0x028c5ac3 CFRunLoopRunSpecific + 467
28  CoreFoundation                      0x028c58db CFRunLoopRunInMode + 123
29  GraphicsServices                    0x0345c9e2 GSEventRunModal + 192
30  GraphicsServices                    0x0345c809 GSEventRun + 104
31  UIKit                               0x01411d3b UIApplicationMain + 1225
32  SWIP                                0x0000670d main + 141
33  libdyld.dylib                       0x031b2725 start + 0
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 
Will apple reject my app for something like this?
[Reachability reachabilityWithHostname: @"http://www.google.com"]