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

Posted

技术标签:

【中文标题】AppDelegate.swift 中没有这样的模块“电容器”【英文标题】:No such module 'Capacitor' in AppDelegate.swift 【发布时间】:2021-07-07 09:27:12 【问题描述】:

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

查看错误:

Podfile 内容:

任何帮助将不胜感激。谢谢!

【问题讨论】:

你需要在 podfile 中添加 'Capacitor' @zeytin 请问怎么做? 【参考方案1】:

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

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

(来源:npx 和 ionic)

【讨论】:

【参考方案2】:

对于任何有兴趣的人,我删除了 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 中运行/构建应用程序。模拟器打开成功,应用运行流畅。

【讨论】:

【参考方案3】:

在 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

【讨论】:

我删除了ios文件夹并再次运行:ionic cap add ios.现在,Podfile 内部包含电容器,但问题是当我在 XCode 中打开我的项目时,项目结构中没有 Podfile。 你试过运行ionic cap build ios吗? 是的,它失败了!运行电容器时发生错误,电容器同步 ios 以代码 -1 退出。日志太多,但其中之一是:Pod install failed and Bus Error【参考方案4】:

如果电容器是 Pod,我假设它是因为您已附加 podfile,

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

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

【讨论】:

像这样:pod 'Capacitor' ?这够了吗? 我是这样添加的:target 'App' do pod 'Capacitor', '~> 3.0.0' end 并运行 pod install,但错误仍然存​​在。我应该做任何清洁或某事吗? 它应该像 target 'App' do pod 'Capacitor' 或者如果你有一个版本 pod 'Capacitor', '3.0.0'

以上是关于AppDelegate.swift 中没有这样的模块“电容器”的主要内容,如果未能解决你的问题,请参考以下文章

swift 没有故事板的iOS项目。 AppDelegate.swift

从 AppDelegate、Swift 导航到 TabBarController 内的特定视图控制器

“FileManager”类型的值没有成员“urlsForDirectory”-AppDelegate Swift 3 错误

Swift 中调试状态下打印日志

AppDelegate.swift 如何在 Xcode 6.3 中替换 AppDelegate.h 和 AppDelegate.m

在 AppDelegate (Swift) 中切换视图