【问题标题】:Ionic/Cordova Plugins not included in Xcode projectXcode 项目中不包含 Ionic/Cordova 插件
【发布时间】:2026-01-05 14:05:02
【问题描述】:

我有一个 Ionic v1 项目,但在构建 ios 时遇到了问题。几乎我所有的cordova插件都没有添加到文件夹plugin下左栏的Xcode项目中。 科尔多瓦版本:6.2.0 Xcode 版本:8.3.3

我已经完成了:

cordova platforms rm ios
cordova platforms add ios
cordova build ios

编译正常但是插件文件没有添加到我的Xcode项目中(我运行app的时候很多XXXPlugin class CDVXXXX (pluginName: XXX) 不存在)。

  • 插件文件被添加到platforms/ios/MyProject/Plugins(我可以看到不同的文件夹和文件.h et .m)。
  • 但是当我打开 Xcode 项目时,只有我的一个插件 (Branch.io) 的文件,所有其他的都不在这里 (cordova-plugin-camera、cordova-plugin-geolocation、cordova-plugin- inappbrowser 等)
  • 在我的 config.xml 中,似乎没问题(例如:<plugin name="cordova-plugin-geolocation" spec="~2.4.3" />
  • 在platforms/ios/MyProject/config.xml 中,似乎也可以(例如:<feature name="Geolocation"><param name="ios-package" value="CDVLocation" /></feature>

我可以手动添加它们,但这需要时间,而且每次我删除并重新添加平台时,我都必须重新添加。

我不知道该怎么做,有什么想法我做错了吗?为什么 XCode 在第一个之后停止导入插件文件(BranchSDK 似乎是按字母顺序排列的第一个)?

我的 package.json :

{
   "name": "myapp",
   "version": "1.1.1",
   "description": "myapp: An Ionic project",
   "dependencies": {
       "grunt-contrib-compress": "^1.3.0",
       "grunt-contrib-uglify": "^2.0.0",
       "gulp": "^3.5.6",
       "gulp-concat": "^2.2.0",
       "gulp-minify-css": "^0.3.0",
       "gulp-rename": "^1.2.0",
       "gulp-sass": "^2.0.4",
       "ionic-native-transitions": "^1.0.2",
       "moment": "^2.14.1",
       "ng2-translate": "^2.2.2",
       "plist": "^2.0.1"
    },
    "devDependencies": {
       "angular-translate": "^2.15.2",
       "bower": "^1.3.3",
       "coffee-script": "^1.10.0",
       "grunt-contrib-compress": "^1.3.0",
       "grunt-contrib-uglify": "^2.0.0",
       "gulp-angular-templatecache": "^2.0.0",
       "gulp-ng-annotate": "^2.0.0",
       "gulp-useref": "^3.1.2",
       "gulp-util": "^2.2.14",
       "mv": "^2.1.1",
       "shelljs": "^0.3.0"
    },
    "cordovaPlugins": [
       "cordova-plugin-whitelist",
       "cordova-plugin-console",
       "cordova-plugin-device",
       "cordova-plugin-splashscreen",
       "ionic-plugin-keyboard",
       "cordova-plugin-network-information",
       "cordova-plugin-geolocation",
       "cordova-plugin-badge"
    ],
    "cordovaPlatforms": [
       "android",
       {
         "platform": "ios",
         "version": "4.1.1",
         "locator": "ios@4.1.1"
       }
     ]
}

谢谢

【问题讨论】:

  • 好的..删除我的答案,因为它不正确
  • 请分享您的 package.json 文件内容
  • 我用 package.json 更新了我的帖子。现在我将我所有的插件文件(.h、.m 和 .framework)一一添加到左侧的 Xcode 项目中(在文件夹资源管理器中),但这非常痛苦。而且如果删除ios平台并重新添加它,我将不得不再次这样做。

标签: ios xcode cordova ionic-framework


【解决方案1】:

科尔多瓦版本:6.2.0

cordova@6.2.0 was released 超过 1.5 年前。尝试更新到最新版本cordova@7.1.0

然后安装最新的iOS平台:cordova platform add ios@latest

Xcode 版本:8.3.3

当您使用它时,请更新到 Xcode 9,以便为 iOS 11 / iPhone X 构建。

【讨论】:

  • 我将更新cordova,但现在,我需要上传当前版本的应用更新。在它工作正常之前,我不知道是什么触发了问题
【解决方案2】:

删除插件文件夹、node_module 文件夹和平台/ios 文件夹。然后在项目根目录下运行“npm install.add ios platform

【讨论】:

    最近更新 更多