我基于Evernote SDK sample在XCode中创建了一个ipad项目。测试OAuth的方法有效。我从项目中的直接来源切换到CocoaPods pod 'Evernote-SDK-iOS', '~> 1.3'
,现在我得到了以下异常。
当它停止工作时,我注意到我正在运行模拟器,用于" iPad"无意的。我使用过" iPad Retina 64bit"在它开始工作之前。当我切换到64位时,它工作。我试用了直接来源的版本而不是pods和#34; iPad"它打开的版本授权弹出窗口,当我登录时,我能够登录" iPad"在CocoaPods版本中....似乎在CocoaPods版本中存在授权问题,而不是模拟器之间的区别......当我第一次使用我的旧代码授权我的应用程序时它才有效...
知道项目中的直接源代码与使用CocoaPods之间的区别是什么?
我在第153行得到了异常:return [data base64EncodedString];在文件ENGCOAuth.m
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_NSInlineData base64EncodedString]: unrecognized selector sent to instance 0x958ca10'
*** First throw call stack:
(
0 CoreFoundation 0x01b001e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x009538e5 objc_exception_throw + 44
2 CoreFoundation 0x01b9d243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x01af050b ___forwarding___ + 1019
4 CoreFoundation 0x01af00ee _CF_forwarding_prep_0 + 14
5 MemloNotepad 0x001d378a -[ENGCOAuth signature] + 618
6 MemloNotepad 0x001d3187 -[ENGCOAuth authorizationHeader] + 167
7 MemloNotepad 0x001d2fb5 -[ENGCOAuth request] + 245
8 MemloNotepad 0x001d4dba +[ENGCOAuth URLRequestForPath:GETParameters:scheme:host:consumerKey:consumerSecret:accessToken:tokenSecret:] + 1082
9 MemloNotepad 0x001eb38c -[EvernoteSession startOauthAuthentication] + 348
10 MemloNotepad 0x001ead7e __68-[EvernoteSession authenticateWithViewController:completionHandler:]_block_invoke + 558
11 MemloNotepad 0x001cfec7 __44-[ENAPI invokeAsyncIdBlock:success:failure:]_block_invoke_2 + 55
注意:我已经在Evernote forum中提出了这个问题,但我差不多一个月没有得到任何答复。
答案 0 :(得分:1)
另一个StackOverflow question帮我解决了这个问题。
我必须在构建设置中的其他链接器标志中添加$(inherited)
。我在其中一个目标中获得了它,但不是在所有目标中。