1
votes

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

2
Our team is still investigating this issue and plan to resolution for you sometime next weekDave Cariello
great, looking forward to hearing from youChristian Chateauvieux

2 Answers

0
votes

I would think that the best option is the one the fits most your project demands, time frames and technical complexity at achieving it.

0
votes

The development team has been working on a Swift SDK for Bluemix Mobile Services which should allow the integration to MFPF without the duplicate symbol errors.

The SDK and samples are still in development, but you can start experimenting with the Bluemix Push Notification sample we are currently developing which uses the new Swift SDK. Please take a look at the development branch of the bms-samples-swift-hellopush repository.

I was able to integrate the MFPF SDK into this sample without the duplicate symbol errors you were referencing. Please note that the SDKs are in a pre-release stage so this is still experimental. I can keep you updated when the SDKs are released.