Невозможно создать приложение, если добавить модули HockeyApp и MobileCenter
Я попытался добавить Azure Mobile Center в проект, который уже использует HockeyApp для отчетов о сбоях (и распространения).
Вот Подфайл:
use_frameworks!
target "MyApp" do
pod 'HockeySDK', '3.8.5'
pod 'MobileCenter'
...and some other pods...
end
На 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)
То же самое происходит, если вы вручную добавляете MobileCenter.framework
, MobileCenterAnalytics.framework
а также MobileCenterCrashes.framework
рамки, как описано в документах.
Но не если вы только вручную добавляете MobileCenter.framework
а также MobileCenterAnalytics.framework
рамки.
Итак, мой вопрос: я где-то облажался или Microsoft облажалась где-то и дала что-то одно и то же глобальное имя чему-то в обоих HockeyApp
а также MobileCenterCrashes
рамки?
1 ответ
На iOS невозможно использовать более одного стороннего инструмента для отчетов о сбоях одновременно. Поэтому, независимо от проблемы с дублирующимися символами, вам нужно выбрать один из двух SDK, которые вы хотите использовать для отчетов о сбоях.
Обратите внимание, что из-за модульной природы Mobile Center SDK вы можете легко добавить все остальные подспецификации, например, для Mobile Center. Analytics
, Push
, а также Distribute
если вы решили сохранить Hock eySDK для отчетов о сбоях. Обратный путь был бы не таким простым, как если бы вы хотели сохранить другие функции, кроме отчетов о сбоях, потребовалось бы выполнить пользовательскую сборку Hock eySDK.
(Я работаю в команде Mobile Center:))