2014-10-12 6 views
1

paypal ios 앱에 대한 github 프로젝트를 다운로드하여 사용했습니다. https://github.com/paypal/PayPal-iOS-SDK 오류없이 잘 실행했습니다. iOS 8 빠른 프로젝트에 링크하려고하면 모든 파일을로드하고 뷰 컨트롤러를 잘 연결할 수 있으며 브리지 헤더 파일이 정상적으로 작동한다고 생각합니다. 필자는 기본적으로 모든 viewcontroller 파일을 샘플 프로젝트에서 내 프로젝트로 이동하고 필자가 필요로했던 것을 연결했습니다. 내가 믿는 클라이언트 ID와 비밀 ID가 있습니다. 내가 할PayPal 통합 iOS 8 앱

- (IBAction)getUserAuthorizationForFuturePayments:(id)sender { 

     NSLog(@"\n\n\nbegin getting user authorization\n\n\nPAYPAL CONFIG:::: %@", self.payPalConfig); 
     PayPalFuturePaymentViewController *futurePaymentViewController = [[PayPalFuturePaymentViewController alloc] initWithConfiguration:self.payPalConfig delegate:self]; 

     //breaks here when trying to send the config init. 


     NSLog(@"\n\n\nafter initializtion of paypal future payment view controller\n\n\n"); 

     [self presentViewController:futurePaymentViewController animated:YES completion:nil]; 
     NSLog(@"after present"); 
} 

오류는 다음과 같습니다 : 그것은 내가 FuturePaymentViewController을 만들려고 할 때입니다

PAYPAL CONFIG:::: <PayPalConfiguration: 0x7fb23e212af0> 


2014-10-12 16:31:38.979 Project[2161:69146] -[PayPalFuturePaymentViewController  payPalServiceManager]: unrecognized selector sent to instance 0x7fb23e2207d0 
2014-10-12 16:31:38.981 Project[2161:69146] *** Terminating app due to uncaught exception  'NSInvalidArgumentException', reason: '-[PayPalFuturePaymentViewController payPalServiceManager]:  unrecognized selector sent to instance 0x7fb23e2207d0' 
*** First throw call stack: 
(
0 CoreFoundation      0x00000001055bf3f5 __exceptionPreprocess + 165 
1 libobjc.A.dylib      0x0000000105258bb7 objc_exception_throw + 45 
2 CoreFoundation      0x00000001055c650d -[NSObject(NSObject)  doesNotRecognizeSelector:] + 205 
3 CoreFoundation      0x000000010551e7fc ___forwarding___ + 988 
4 CoreFoundation      0x000000010551e398 _CF_forwarding_prep_0 + 120 
5 CutInLineSwift      0x000000010262c0b1 -[PayPalFuturePaymentViewController initWithConfiguration:delegate:] + 361 
6 CutInLineSwift      0x00000001025d28de -[ZZMainViewController getUserAuthorizationForFuturePayments:] + 190 
7 UIKit        0x00000001029639ee -[UIApplication sendAction:to:from:forEvent:] + 75 
8 UIKit        0x0000000102a69bd0 -[UIControl _sendActionsForEvents:withEvent:] + 467 
9 UIKit        0x0000000102a68f9f -[UIControl touchesEnded:withEvent:] + 522 
10 UIKit        0x00000001029a93b8 -[UIWindow _sendTouchesForEvent:] + 735 
11 UIKit        0x00000001029a9ce3 -[UIWindow sendEvent:] + 683 
12 UIKit        0x0000000102976ae1 -[UIApplication sendEvent:] + 246 
13 UIKit        0x0000000102983bad _UIApplicationHandleEventFromQueueEvent + 17370 
14 UIKit        0x000000010295f233 _UIApplicationHandleEventQueue + 1961 
15 CoreFoundation      0x00000001054f4ad1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
16 CoreFoundation      0x00000001054ea99d __CFRunLoopDoSources0 + 269 
17 CoreFoundation      0x00000001054e9fd4 __CFRunLoopRun + 868 
18 CoreFoundation      0x00000001054e9a06 CFRunLoopRunSpecific + 470 
19 GraphicsServices     0x00000001071eb9f0 GSEventRunModal + 161 
20 UIKit        0x0000000102962550 UIApplicationMain + 1282 
21 CutInLineSwift      0x00000001025d093e top_level_code + 78 
22 CutInLineSwift      0x00000001025d097a main + 42 
23 libdyld.dylib      0x0000000105f93145 start + 1 
) 
    libc++abi.dylib: terminating with uncaught exception of type NSException 

이 샘플 프로젝트에서 전혀 다른 때문에 파괴해서는 안하지만 왜 내가 아무 생각이 없습니다. 도와주세요, 고마워요!

+0

뭔가가 연결되지 않았거나 헤더를 가져 오지 않은 것 같습니다. – Milo

답변

1

Dave from PayPal here.

나는 당신의 문제의 3 단계에 의해 해결 될 것이라고 믿는다 우리 integration instructions :

  • : 프로젝트의 빌드 설정합니다 (TARGETS 섹션이 아닌 PROJECTS 섹션)에서

    추가 -lc++ -ObjC - Other Linker Flags

또한 다른 메서드를 호출하기 전에 [PayPalMobile initializeWithClientIdsForEnvironments:]을 호출하여 SDK를 초기화해야한다는 것을 나타내는 예제 코드 Step 1을 유의하십시오.

+0

-lC++를 추가하는 대상에 대해 3 단계를 완료했습니다. 내 앱 대리인 내에서 Swift에서이 메서드를 사용할 때 어디에서이 메서드를 호출해야합니까? PayPalMobile.initializeWithClientIdsForEnvironments ([PayPalEnvironmentProduction : "XXXXXXXX", PayPalEnvironmentSandbox : "XXXXXXXXX"]) –

+0

실제로 문제가 발생한 '-ObjC'가 누락되었습니다. ('-lC++'을 추가하는 것도 중요합니다.)'initializeWithClientIdsForEnvironments :'메소드를 다시 사용하면, 앱 위임자가 실제로 그것을 호출하는 정확한 장소입니다. –

+0

예 예 감사합니다. -ObjC !! 고맙습니다! –