iOS 使用 PayPal 移动 SDK 构建错误
iOS Build Error Using PayPal Mobile SDK
我有一个 iOS 应用程序,它直接引用 AWS Mobile 框架和其他几个使用 CocoaPods 的库。该项目构建良好,我能够毫无问题地连接到 AWS。
但是,当我将 'PayPal-iOS-SDK' 作为附加库添加到 PodFile 和 运行 pod install 中时,我遇到了几个 build/linker 错误:
Undefined symbols for architecture x86_64:
"_AWSSNSErrorDomain", referenced from:
___88-[AWSPushManager interceptApplication:didRegisterForRemoteNotificationsWithDeviceToken:]_block_invoke239 in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSLambdaInvoker", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSCloudLogic.o)
"_OBJC_CLASS_$_AWSSNS", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSCreatePlatformEndpointInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSGetEndpointAttributesInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSSetEndpointAttributesInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSSubscribeInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSUnsubscribeInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_GIDSignIn", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSGoogleSignInProvider.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如果我从其他链接器标志构建设置中删除 -ObjC 标志,我可以构建但不能引用 PayPal 框架,因为它依赖于此设置。
我也尝试过使用 -force_load 而不是 -ObjC,但也没有成功构建它。
我查看了通过直接引用而不是使用 CocoaPods 来集成 PayPal,但是这种类型的集成仍然需要 -ObjC 标志,这会导致与上述相同的错误。
关于在与 PayPal iOS SDK 相同的项目中使用 AWS 移动 SDK 的任何想法?
删除 -ObjC 其他链接器标志并添加以下其他链接器标志:
-force_load $(SRCROOT)/Pods/PayPal-iOS-SDK/Core/Frameworks/libPayPalMobile.a
我有一个 iOS 应用程序,它直接引用 AWS Mobile 框架和其他几个使用 CocoaPods 的库。该项目构建良好,我能够毫无问题地连接到 AWS。
但是,当我将 'PayPal-iOS-SDK' 作为附加库添加到 PodFile 和 运行 pod install 中时,我遇到了几个 build/linker 错误:
Undefined symbols for architecture x86_64:
"_AWSSNSErrorDomain", referenced from:
___88-[AWSPushManager interceptApplication:didRegisterForRemoteNotificationsWithDeviceToken:]_block_invoke239 in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSLambdaInvoker", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSCloudLogic.o)
"_OBJC_CLASS_$_AWSSNS", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSCreatePlatformEndpointInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSGetEndpointAttributesInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSSetEndpointAttributesInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSSubscribeInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSUnsubscribeInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_GIDSignIn", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSGoogleSignInProvider.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如果我从其他链接器标志构建设置中删除 -ObjC 标志,我可以构建但不能引用 PayPal 框架,因为它依赖于此设置。
我也尝试过使用 -force_load 而不是 -ObjC,但也没有成功构建它。
我查看了通过直接引用而不是使用 CocoaPods 来集成 PayPal,但是这种类型的集成仍然需要 -ObjC 标志,这会导致与上述相同的错误。
关于在与 PayPal iOS SDK 相同的项目中使用 AWS 移动 SDK 的任何想法?
删除 -ObjC 其他链接器标志并添加以下其他链接器标志:
-force_load $(SRCROOT)/Pods/PayPal-iOS-SDK/Core/Frameworks/libPayPalMobile.a