MobileFirst Platform CLI 无法使用 JSON 存储构建 xcode 7.2 项目

Posted

技术标签:

【中文标题】MobileFirst Platform CLI 无法使用 JSON 存储构建 xcode 7.2 项目【英文标题】:MobileFirst Platform CLI unable to build xcode 7.2 project with JSON Store 【发布时间】:2015-12-16 10:32:51 【问题描述】:

我有一个包含 mfp JSON 存储的 cordova 项目。当我用 xcode 7.2 构建项目时(启用 Bitcode 设置为 false),它会遇到错误:

  "_EVP_CIPHER_CTX_cleanup", referenced from:
  +[JSONStoreSecurityUtils _doEncrypt:key:withIV:] in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreSecurityUtils.o)


  +[JSONStoreSecurityUtils _doDecrypt:key:withIV:withCorrectIVConversion:withCorrectKeyConversion:] in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreSecurityUtils.o)
[...50 further errors...]
"_sqlite3_step", referenced from:


  ___36-[JSONStoreDatabaseManager execute:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)


  ___35-[JSONStoreDatabaseManager update:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)


  ___47-[JSONStoreDatabaseManager deleteFromDatabase:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)


  ___47-[JSONStoreDatabaseManager selectInto:withSQL:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)


  ___50-[JSONStoreDatabaseManager selectAllInto:withSQL:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)


  ___35-[JSONStoreDatabaseManager insert:]_block_invoke in IBMMobileFirstPlatformFoundationJSONStore(JSONStoreDatabaseManager.o)


ld: symbol(s) not found for architecture arm64





clang: error: linker command failed with exit code 1 (use -v to see invocation)

看起来它没有架构 arm64 的相关 JSONStore 库。如果我尝试在模拟器上运行,它会失败并找不到架构 x86_64。

如果您想重现该问题,请按照以下步骤操作:

我使用了来自 mfp.help 的 project 添加了ios环境:mfp cordova platform add 多功能一体机推送 在 xcode 中打开项目,禁用 bitcode 并在设备/模拟器上运行

mfp cordova 插件列表显示如下:

cordova-plugin-mfp 7.1.0 "IBM MobileFirst Platform Foundation"
cordova-plugin-mfp-jsonstore 7.1.0 "IBM MobileFirst Platform Foundation - JSONStore"
cordova-plugin-mfp-push 7.1.0 "IBM MobileFirst Platform Foundation - Push Notifications"
org.apache.cordova.device 0.2.13 "Device"
org.apache.cordova.dialogs 0.2.11 "Notification"
org.apache.cordova.geolocation 0.3.11 "Geolocation"
org.apache.cordova.globalization 0.3.3 "Globalization"
org.apache.cordova.inappbrowser 0.5.4 "InAppBrowser"
org.apache.cordova.network-information 0.2.14 "Network Information"

我尝试通过 mfp cordova plugin update 更新插件,但没有帮助。

我使用这个版本的 cli: $ mfp -v 7.1.0.00.20151023-1449

【问题讨论】:

【参考方案1】:

请在此处找到如何解决问题的说明

https://www.dropbox.com/s/iiesbpgrd7bj0c8/iOSfix.mp4?dl=0

【讨论】:

【参考方案2】:

使用相同的CLI版本,新建一个Cordova应用,添加iOS平台和JSONStore插件,Xcode 7.2中的构建过程顺利通过。这可能是所提供样本的特定问题。

由于您也是 IBM 员工,因此我建议您直接通过 Notes 联系 Andrii Vasylchenko,因为他会维护此示例并可能对其进行更新。

【讨论】:

我在我的机器上做了同样的事情,它也有效。所以,我想你是对的。我将与 Andrii 核对以修复样本。

以上是关于MobileFirst Platform CLI 无法使用 JSON 存储构建 xcode 7.2 项目的主要内容,如果未能解决你的问题,请参考以下文章

MobileFirst Platform Studio 6.3.0 - 将 mobilefirst 应用程序部署到开发服务器期间出错

IBM MobileFirst Platform 中的证书固定

IBM MobileFirst Platform Operations Console:找不到运行时

在 IBM 容器上运行 IBM MobileFirst Platform Foundation

使用 Ionic 开发 IBM MobileFirst Platform 混合应用程序

MobileFirst Platform v7.1 - 管理多个推送通知