We have some issues when trying to use both the mobilefirst platform SDK and the IBM Bluemix notification SDK in the MyUnicity iOS project. There are a number of duplicate symbols between the MFP and the IMFCore libraries and the build of our project fails in the linking phase (see the examples below: in total we get "121 duplicate symbols for architecture arm64"). The Bluemix Push notification on iOS requires IMFCore and IMFPush features:
duplicate symbol _OBJC_IVAR_$_WLAFQueryStringPair._field in: ... duplicate symbol _WLAFQueryStringPairsFromDictionary in: ... duplicate symbol _OBJC_CLASS_$_WLDeviceAuthManager in: ... ... ld: 121 duplicate symbols for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
We have seen a similar happening with the mobile first platform SDK and the IBM Localization SDK (see this: https://developer.ibm.com/answers/questions/176115/ibmlocation-ios-sdk-worklight-api-duplicate-symbol.html). In that case the answer was to use the Push notification from the mobile first platform, but in our case this is not possible since the push notification service is used by MACM, which sits outside the mobilefirst platform.
There are some general recommendations that could solve this problem, but these solutions seem more like hacks or involve steps that may be difficult to replicate on other development environment:
1) manualy removing of symbols from the static library
2) playing with namespacing dependencies (involves having access to the libraries in question)
3) usage of other linking options
There is also an alternate solution: use xtify for push notifications in MACM instead of bluemix push notification (MACM supports Bluemix Push or Xtify as push notification solutions).
What would be the best course of action here?
Thanks