2017-07-17 2 views
1

J'ai essayé d'ajouter Azure Mobile Center à un projet qui utilise déjà HockeyApp pour les rapports d'erreur (et la distribution).Impossible de créer une application si vous ajoutez des modules à la fois HockeyApp et MobileCenter

Voici le PODFILE:

use_frameworks! 
target "MyApp" do 
    pod 'HockeySDK', '3.8.5' 
    pod 'MobileCenter' 
    ...and some other pods... 
end 

Sur pod install il ajoute MobileCenter la version 0.9.0 .

L'application ne parvient pas à construire avec le redouté Apple Mach-O Linker Error. Voici la sortie d'erreur correspondant:

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) 

La même chose se produit si vous ajoutez manuellement les MobileCenter.framework, MobileCenterAnalytics.framework et MobileCenterCrashes.framework cadres, tel que décrit dans the docs.

Mais pas si vous n'ajoutez que manuellement les frameworks MobileCenter.framework et MobileCenterAnalytics.framework.

Donc, ma question est: Ai-je foiré quelque part ou Microsoft ont foiré quelque part et quelque chose étant donné le même nom global à quelque chose dans les deux leurs cadres HockeyApp et MobileCenterCrashes?

Répondre

5

Sur iOS, il n'est pas possible d'utiliser plusieurs outils de génération de rapports d'incidents tiers à la fois. Par conséquent, quel que soit le problème des symboles en double, vous devez choisir l'un des deux SDK que vous souhaitez utiliser pour vos rapports d'erreur.

Notez qu'en raison de la nature modulaire du SDK Mobile Center, vous pouvez facilement ajouter tous les autres sous-éch. Les numéros de téléphone Analytics, Push et Distribute du Centre mobile, si vous décidez de conserver HockeySDK pour les rapports d'erreur. L'autre solution ne serait pas aussi simple que de faire une version personnalisée de HockeySDK si vous vouliez conserver d'autres fonctionnalités, à l'exception des rapports d'erreur.

(Je travaille sur l'équipe Mobile :))

+0

Ah bien, cela fait sens. Merci Lukas! –