繁体   English   中英

AppDelegate.swift 中没有这样的模块“电容器”

[英]No such module 'Capacitor' in AppDelegate.swift

我正在研究在Capacitor之上运行的Ionic React Project 我加了Android平台,一切顺利。 现在我正在尝试让我的应用程序在 iOS 中运行(第一次使用 iOS),在添加 ios 平台并在 XCode 中打开我的项目后,我遇到了一些问题。

查看错误:

在此处输入图像描述

在此处输入图像描述

播客文件内容:

在此处输入图像描述

任何帮助将非常感激。 谢谢你!

对于任何感兴趣的人,我删除了 ios 文件夹并再次添加了 iOS 平台。 之后,我没有运行' pod install '(我通过这个命令得到了错误),而是使用了这些命令:

在常规终端中,项目目录外:

sudo arch -x86_64 gem install ffi

然后在 iOS 文件夹中

arch -x86_64 pod install

执行这些命令后,所有电容器组/插件都已成功安装。 我使用以下命令打开应用程序: ionic cap open ios并收到错误: No module Capacitor found ,但无论如何我忽略了此错误并在 XCode 内运行/构建应用程序。模拟器成功打开并且应用程序运行顺利。

我今天遇到了同样的问题。 在做了一些研究之后,我终于让我的项目在 iOS 上运行。我使用的是 Angular 版本 9。我无法运行 XCode 项目,因为 ionic 不会创建所需的 podfile。 我只是先用 npx 创建了 iOS 应用程序,然后使用 ionic 运行我的应用程序的实时重新加载:命令如下:

  1. npm install @capacitor/ios
  2. npx cap add ios
  3. ng build (创建 www 目录)
  4. npx cap open ios
  5. ionic capacitor run ios --livereload --external
  6. 从 XCode 运行应用程序,以便在运行时获取应用程序的日志

(来源: npxionic

在 Xcode 中的 iOS 包中直接编辑 Podfile 的问题在于,每次构建包时,您都有可能丢失对 Podfile 所做的更改。

当您运行ionic cap add iosionic cap build ios时,电容器应该会自动为您构建。

如果没有,您可以尝试删除 IDE 中的 iOS 包(例如 VS Code),然后使用 CLI 再次添加它。

显然,Podfile 因项目而异,但使用 Ionic/Capacitor 生成的 Podfile 通常如下所示:

platform :ios, '12.0'
use_frameworks!

# workaround to avoid Xcode caching of Pods that requires
# Product -> Clean Build Folder after new Cordova plugins installed
# Requires CocoaPods 1.6 or newer
install! 'cocoapods', :disable_input_output_paths => true

def capacitor_pods
  pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
  pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
  pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app'
  pod 'CapacitorDevice', :path => '../../node_modules/@capacitor/device'
  pod 'CapacitorGeolocation', :path => '../../node_modules/@capacitor/geolocation'
  pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'
  pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard'
  pod 'CapacitorLocalNotifications', :path => '../../node_modules/@capacitor/local-notifications'
  pod 'CapacitorNetwork', :path => '../../node_modules/@capacitor/network'
  pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'
  pod 'CapacitorStorage', :path => '../../node_modules/@capacitor/storage'
  pod 'CordovaPlugins', :path => '../capacitor-cordova-ios-plugins'
end

target 'App' do
  capacitor_pods
  # Add your Pods here
end

如果电容器是一个 Pod,我假设它是因为你已经附加了你的 podfile,

然后将带有版本的 Capacitor pod 添加到 podfile 并运行pod install它应该可用,

否则,如果它是一个外部框架,请确保将其添加到项目中并将其复制到Target-> BuildPhases-> Link Binary With Libraries Option

我已经生成了一个 IOS 文件夹,所以我删除了它并运行了以下命令:

  1. npx cap add ios

  2. ionic build ios or ng build

  3. npx cap sync ios仅在必要时

  4. npx cap open ios

如果你想在你的电容器项目中使用多个方案,我通过将它添加到我的项目的 Podfile 来解决这个问题:

target 'TARGETNAME' do
  capacitor_pods
  # Add your Pods here
end

它在此处的文档中

在我的例子中,我在 xcode 中打开了 .xcodeproj 而不是 xcworkspace。一旦我打开了。 xcworkspace 文件,应用构建成功。

两者之间的区别在这里得到了很好的解释: https://stackoverflow.com/a/21631534/4868839

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM