IBM MobileFirst Platform Foundation(MFP)和Bluemix IMFCore SDK中的重复符号 [英] Duplicate symbols in IBM MobileFirst Platform Foundation (MFP) and Bluemix IMFCore SDK's

查看:115
本文介绍了IBM MobileFirst Platform Foundation(MFP)和Bluemix IMFCore SDK中的重复符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试在MyUnicity iOS项目中同时使用mobilefirst平台SDK和IBM Bluemix通知SDK时,我们遇到了一些问题。 MFP和IMFCore库之间存在许多重复的符号,并且我们项目的构建在链接阶段失败(参见下面的示例:总共我们得到121个架构arm64的重复符号)。 iOS上的Bluemix Push通知需要IMFCore和IMFPush功能:

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:

重复符号_OBJC_IVAR _ $ _ WLAFQueryStringPair._field in:...
复制符号_WLAFQueryStringPairsFromDictionary in :...
重复符号_OBJC_CLASS _ $ _ WLDeviceAuthManager in:...
...
ld:121架构arm64的重复符号
clang:错误:链接器命令失败并退出代码1(使用-v查看调用)

我们已经看到了移动第一平台SDK和IBM Localization SDK的类似情况(请参阅: https://developer.ibm .COM /答案/问题/ 176115 / ibmlocation-IOS-SDK-工作灯-API的复本symbol.html )。在这种情况下,答案是使用来自移动第一平台的推送通知,但在我们的情况下,这是不可能的,因为推送通知服务由MACM使用,MACM位于移动第一平台之外。

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)手动删除静态库中的符号

1) manualy removing of symbols from the static library

2)使用命名空间依赖项(涉及访问相关库)

2) playing with namespacing dependencies (involves having access to the libraries in question)

3)其他链接选项的使用

3) usage of other linking options

还有一个替代解决方案:在MACM中使用xtify进行推送通知而不是使用bluemix推送通知(MACM支持Bluemix Push或Xtify作为推送通知解决方案)。

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?

谢谢

推荐答案

开发团队一直致力于为Bluemix Mobile Services开发Swift SDK,这应该允许集成到MFPF而不会出现重复的符号错误。

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.

SDK和示例仍处于开发阶段,但您可以开始尝试我们当前正在开发的使用新Swift SDK的Bluemix推送通知示例。请查看 bms的开发分支-samples-swift-hellopush 存储库。

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.

我能够将MFPF SDK集成到此示例中,而不会出现您引用的重复符号错误。请注意,SDK处于预发布阶段,因此仍处于试验阶段。 SDK发布时,我可以让您及时了解最新信息。

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.

这篇关于IBM MobileFirst Platform Foundation(MFP)和Bluemix IMFCore SDK中的重复符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆