如果同时添加HockeyApp和MobileCenter pod,则无法构建应用程序

Jon*_*Cox 1 ios hockeyapp mobile-center visual-studio-app-center

我已经尝试将Azure Mobile Center添加到已经使用HockeyApp进行崩溃报告(和分发)的项目中.

这是Podfile:

use_frameworks!
target "MyApp" do
    pod 'HockeySDK', '3.8.5'
    pod 'MobileCenter'
    ...and some other pods...
end
Run Code Online (Sandbox Code Playgroud)

pod install它上面添加了MobileCenter 0.9.0版.

该应用程序无法与可怕的构建Apple Mach-O Linker Error.这是相关的错误输出:

duplicate symbol ___cxa_throw in:
    /Users/joncox/Documents/TAB/RTI-Client/Pods/HockeySDK/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/HockeySDK(BITCrashCXXExceptionHandler.o)
    /Users/joncox/Documents/TAB/RTI-Client/Pods/MobileCenter/MobileCenter-SDK-iOS/MobileCenterCrashes.framework/MobileCenterCrashes(MSCrashesCXXExceptionHandler.o)
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

同样的事情发生,如果您手动添加MobileCenter.framework,MobileCenterAnalytics.frameworkMobileCenterCrashes.framework框架,描述的文档.

但是,如果您只手动添加MobileCenter.frameworkMobileCenterAnalytics.framework框架.

所以我的问题是:我搞砸了某个地方还是让微软搞砸了某个地方,并在他们HockeyAppMobileCenterCrashes框架中给出了同样的全球名称?

Luk*_*ieß 8

在iOS上,一次不可能使用多个第三方崩溃报告工具.因此,无论重复符号问题如何,您都需要选择要用于崩溃报告的两个SDK中的任何一个.

需要注意的是,由于移动中心SDK的模块化特性,您可以轻松地添加其他subspecs用于如移动中心的Analytics,Push以及Distribute如果您决定保留HockeySDK的崩溃报告.如果你想保留除崩溃报告之外的其他功能,那么另一种方法就不像你需要自定义构建HockeySDK一样容易.

(我在移动中心团队工作:))