Сбой MGTwitterEngine в iOS5 - PullRequest
       20

Сбой MGTwitterEngine в iOS5

5 голосов
/ 20 декабря 2011

Хотя MGTwitterEngine хорошо работает на предыдущих версиях iOS, он потерпел неудачу с EXC_BAD_ACCESS в тот момент, когда я пытаюсь опубликовать твит:

[twitter sendUpdate:textToShare];

Последний список исполнителей кода Objective C:

[theRequest prepare];

внутри SA_OAuthTwitterEngine.m. Это стек вызовов:

#1  0x00045a63 in -[OAMutableURLRequest URLEncodedString:] at /Users/ben/Dropbox/Dev/External Projects/Twitter-OAuth-iPhone/OAuthConsumeriPhoneLib/OAuthConsumerSrc/OAMutableURLRequest.m:287
#2  0x000445fa in -[OAMutableURLRequest prepare] at /Users/ben/Dropbox/Dev/External Projects/Twitter-OAuth-iPhone/OAuthConsumeriPhoneLib/OAuthConsumerSrc/OAMutableURLRequest.m:131
#3  0x00041778 in -[SA_OAuthTwitterEngine _sendRequestWithMethod:path:queryParameters:body:requestType:responseType:] at /Developer/WorkShop/XDictionary/trunk/Dictionary/Twitter+OAuth/SAOAuthTwitterEngine/SA_OAuthTwitterEngine.m:325
#4  0x000356b1 in -[MGTwitterEngine sendUpdate:inReplyTo:] at /Developer/WorkShop/XDictionary/trunk/Dictionary/Twitter+OAuth/MGTwitterEngine/MGTwitterEngine.m:1037
#5  0x0003546c in -[MGTwitterEngine sendUpdate:] ()
#6  0x00023ae7 in -[SocialNetworking twitterShare] ()
#7  0x00023c2b in -[SocialNetworking OAuthTwitterController:authenticatedWithUsername:] ()
#8  0x0003d0d5 in -[SA_OAuthTwitterController gotPin:] ()
#9  0x0003eabb in -[SA_OAuthTwitterController webViewDidFinishLoad:] ()
#10 0x0051736a in -[UIWebView webView:didFinishLoadForFrame:] ()
#11 0x00518956 in -[UIWebViewWebViewDelegate webView:didFinishLoadForFrame:] ()
#12 0x01ced51d in __invoking___ ()
#13 0x01ced437 in -[NSInvocation invoke] ()
#14 0x01d1849a in -[NSInvocation invokeWithTarget:] ()
#15 0x04f09aff in -[_WebSafeForwarder forwardInvocation:] ()
#16 0x01cee0c9 in ___forwarding___ ()
#17 0x01cedce2 in __forwarding_prep_0___ ()
#18 0x01ced51d in __invoking___ ()
#19 0x01ced437 in -[NSInvocation invoke] ()
#20 0x05aa9ae3 in SendMessage(NSInvocation*) ()
#21 0x05aaa115 in HandleDelegateSource(void*) ()
#22 0x01d5b97f in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ ()
#23 0x01cbeb73 in __CFRunLoopDoSources0 ()
#24 0x01cbe454 in __CFRunLoopRun ()
#25 0x01cbddb4 in CFRunLoopRunSpecific ()
#26 0x01cbdccb in CFRunLoopRunInMode ()
#27 0x02ee1879 in GSEventRunModal ()
#28 0x02ee193e in GSEventRun ()
#29 0x00360a9b in UIApplicationMain ()
#30 0x00001d3a in main ()

Есть идеи? Обходной путь? Вы знаете другую платформу Twitter, которая хорошо работает с iOS 5? Единственное, что мне нужно с этим сделать - публиковать твиты (с возможным первым входом, конечно).

Ответы [ 2 ]

15 голосов
/ 18 января 2012
- (SA_OAuthTwitterEngine *) initOAuthWithDelegate: (NSObject *) delegate {
    if (self = (id) [super initWithDelegate: delegate]) {
        self.requestTokenURL = [NSURL URLWithString: @"https://twitter.com/oauth/request_token"];
        self.accessTokenURL = [NSURL URLWithString: @"https://twitter.com/oauth/access_token"];
        self.authorizeURL = [NSURL URLWithString: @"https://twitter.com/oauth/authorize"];
    }
    return self;
}

Изменить функцию SA_OAuthTwitterEngine.m, как описано выше. Вы должны обновить URL-адреса oAuth до https. Что-то в iOS5 мешает ему перенаправить на https с http

1 голос
/ 26 июня 2013

флаг добавления -all_load в настройке сборки

https://developer.apple.com/library/mac/#qa/qa2006/qa1490.html

-all_load заставляет компоновщик загружать все объектные файлы из каждого архива, который он видит, даже те, которые не содержат код Objective-C.-force_load доступен в Xcode 3.2 и позже.Это позволяет лучше контролировать загрузку архива.Каждый параметр -force_load должен сопровождаться путем к архиву, и каждый объектный файл в этом архиве будет загружен.

...