【问题标题】:Installing cordova plugin breaks ios framework symlinks安装cordova插件会破坏ios框架符号链接
【发布时间】:2017-05-23 14:17:12
【问题描述】:

我正在开发一个为 Android 和 iOS 平台提供功能的 Cordova 插件。我还有一个演示 Cordova 应用程序来测试插件,当安装在演示应用程序中时,该插件适用于 android 平台,但我无法为 iOS 平台构建演示应用程序,以便在安装插件时构建。

我收到此错误

“致命错误:'TestPlugin/TestPlugin.h'文件未找到”

检查演示应用程序中的插件文件夹。我注意到插件使用的 iOS 框架中的符号链接似乎完全丢失了,这让我相信框架没有正确移动。此外,我可以通过手动将相关框架移动到演示应用程序的插件文件夹中并从 Xcode 运行应用程序来运行演示应用程序。

我已经尝试了here 描述的解决方案,但它不能解决问题(我认为它可能仅用于修复被 Windows 破坏的符号链接),我在运行 MacOS Sierra(版本 10.12)、Xcode 8.31 和Cordova 版本 7。

【问题讨论】:

  • 我还在 after_plugin_addbefore_plugin_install 文件夹挂钩中测试了this,但符号链接在“platfors/ios/PROJECT_NAME/Plugins”中被破坏/..“ 文件夹。我正在开发一个插件,如果不从我的框架中复制文件,我无法找到解决此问题的方法。
  • 我在测试时出了点问题。我添加了一个对我有用的答案。

标签: cordova cordova-plugins ios-frameworks


【解决方案1】:

This 实际上对我有用。不过,我做了一些不同的事情。我将我的脚本放在 before_plugin_install 文件夹下,并从文件夹中创建符号链接,如下所示:

#!/bin/sh
cd plugins/MY_PLUGIN/src/ios/MY_FWK.framework/
ln -s -f Versions/A/Headers/ Headers
ln -s -f Versions/A/MY_FWK MY_FWK
ln -s -f Versions/A/ Current
cd -

我给了脚本执行权限,删除了插件并重新添加了它。 Cordova 最终在项目中复制了框架的整个文件(而不是保留符号链接),但项目现在可以工作了。

[更新]

注意,使用钩子文件夹是deprecated

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 2012-03-08
    相关资源
    最近更新 更多