This was about the time Xcode 11 came out and the code is now distributed as a .xcframework rather than a .framework (or something along these lines). This required some updates in carthage to get functional but it now appears it is.
carthage update --use-xcframeworks --platform ios
The Mixpanel.xcframework appears to be copied into the build and appears to be in the nuget (based on the fact its filesize is now 10mb). But when you try run this in the example project you will get the following errors:
~/git/beeradmoore/Xam.Plugin.Mixpanel.iOS/Example/Main.cs(12,13,12,58): warning CS0618: 'UIApplication.Main(string[]?, string?, string?)' is obsolete: 'Use the overload with 'Type' instead of 'String' parameters for type safety.'
MTOUCH : warning MT5215: References to 'System' might require additional -framework=XXX or -lXXX instructions to the native linker
MTOUCH : warning MT5215: References to 'System' might require additional -framework=XXX or -lXXX instructions to the native linker
MTOUCH : warning MT5215: References to 'System.Net.Security' might require additional -framework=XXX or -lXXX instructions to the native linker
MTOUCH : warning MT5215: References to 'System' might require additional -framework=XXX or -lXXX instructions to the native linker
MTOUCH : error MT5214: Native linking failed, undefined symbol: _MPNotificationTypeMini. This symbol was referenced by the managed member Xam.Plugin.Mixpanel.iOS.Constants.MPNotificationTypeMini. Please verify that all the necessary frameworks have been referenced and native libraries linked.
MTOUCH : error MT5214: Native linking failed, undefined symbol: _MPNotificationTypeTakeover. This symbol was referenced by the managed member Xam.Plugin.Mixpanel.iOS.Constants.MPNotificationTypeTakeover. Please verify that all the necessary frameworks have been referenced and native libraries linked.
MTOUCH : error MT5211: Native linking failed, undefined Objective-C class: MPTweak. The symbol '_OBJC_CLASS_$_MPTweak' could not be found in any of the libraries or frameworks linked with your application.
MTOUCH : error MT5211: Native linking failed, undefined Objective-C class: MPTweakStore. The symbol '_OBJC_CLASS_$_MPTweakStore' could not be found in any of the libraries or frameworks linked with your application.
MTOUCH : error MT5211: Native linking failed, undefined Objective-C class: Mixpanel. The symbol '_OBJC_CLASS_$_Mixpanel' could not be found in any of the libraries or frameworks linked with your application.
MTOUCH : error MT5211: Native linking failed, undefined Objective-C class: MixpanelGroup. The symbol '_OBJC_CLASS_$_MixpanelGroup' could not be found in any of the libraries or frameworks linked with your application.
MTOUCH : error MT5211: Native linking failed, undefined Objective-C class: MixpanelPeople. The symbol '_OBJC_CLASS_$_MixpanelPeople' could not be found in any of the libraries or frameworks linked with your application.
MTOUCH : error MT5211: Native linking failed, undefined Objective-C class: _MPTweakBindObserver. The symbol '_OBJC_CLASS_$__MPTweakBindObserver' could not be found in any of the libraries or frameworks linked with your application.
MTOUCH : error MT5202: Native linking failed. Please review the build log.
clang : error : linker command failed with exit code 1 (use -v to see invocation)
There is also some unknowns about this that I am not sure of. If we use --platform ios
then how do we build this for watchOS and tvOS? Can all these be bundled in the same nuget or do we now need a Xam.Plugin.Mixpanel.tvOS and Xam.Plugin.Mixpanel.watchOS as seperate bundles?