iOS 无法找到插件,Android 正常

标签 ios xcode cordova

我正在 Phonegap/Cordova 中构建一个应用程序。应用目前相当简单,但确实需要网络状态和地理定位插件才能工作。

到目前为止,我已经在 Android 上开发了该应用程序(目前它仅由一些基本的 HTML 页面和一些 JS 组成)并且运行良好。

今天早上,我决定确保 iOS 一切正常。一点也不奇怪,事实并非如此。

所以...这似乎是插件的问题。 XCode 吐出以下内容:

CDVPlugin class CDVLocation (pluginName: Geolocation) does not exist.
2013-10-18 11:24:29.437 Eye Cab[589:907] ERROR: Plugin 'Geolocation' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2013-10-18 11:24:29.438 Eye Cab[589:907] -[CDVCommandQueue executePending] [Line 117] FAILED pluginJSON = [
  "Geolocation1841912763",
  "Geolocation",
  "getLocation",
  [
    false,
    0
  ]
]

我想这意味着它无法加载 Geolocation 插件。对于网络连接插件,我得到了类似的东西。

下面是我从 Phonegap 项目截取的 config.xml:

<feature name="http://api.phonegap.com/1.0/device" />
<feature name="Geolocation">
    <param name="ios-package" value="CDVLocation" />
</feature>
<feature name="NetworkStatus">
    <param name="ios-package" value="CDVConnection" />
</feature>

我也曾尝试使用 ID 作为功能名称(例如 org.apache.cordova.geolocation),但遇到了同样的问题。事实上完全相同的错误。

在 Android 中一切都完美运行;在模拟器中,在我的 Mac 和设备上的 Chrome 中。

我正在使用以下版本:

  • Phonegap 3.1.0-0.15.0
  • XCode 5.0
  • 操作系统 10.8.5
  • iOS 6.1.3 (iPod Touch)
  • iOS 7 的 iOS 模拟器

正确的文件在项目的/www/plugins/文件夹中:

  • org.apache.cordova.geolocation
    • 万维网
      • 坐标.js
      • 位置.js
      • PositionError.js
      • geolocation.js
  • org.apache.cordova.network-信息
    • 万维网
      • Connection.js
      • 网络.js

对任何可以提供帮助的人来说,一个欣喜若狂的拥抱。我已经浏览了其他问题,但没有运气。

最佳答案

Mark 的解决方案有效但不是必需的,并且会导致您丢失对 XCode 项目的自定义设置。

为我修复的是:

在 XCode 中,转到 Build Phases -> 打开 Compiled Sources 下拉菜单。单击 + 并添加缺失的插件 .m 文件,该文件应该位于您的插件目录中(但在编译的源代码中缺失)。

关于iOS 无法找到插件,Android 正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19447827/

相关文章:

swift - 尝试将图像保存到库时如何解决nil错误?

ios - 如何检查 iOS 应用程序中是否使用了库

ios - UIAlertController高度差

iphone - kal 日历集成

ios - Xcode:如何使用多个 "Display Name"值,每个配置都不同?

javascript - PhoneGap 和 Highcharts

html - phonegap/cordova 可以使用 native GUI 吗?

ios - 使用可重复使用的单元格在 iPhone 上缓慢加载表格 View

ios - JSON 解析 iOS

android - 从日历打开 Cordova Android 应用程序