AppDelegate.swift中没有此类模块'电容器'

gzjq41n4  于 2022-10-31  发布在  Swift
关注(0)|答案(5)|浏览(263)

我正在Capacitor上运行一个Ionic React Project。我添加了Android平台,一切都很顺利。现在我正在尝试让我的应用程序在iOS上运行(第一次在iOS上运行),在添加iOS平台并在XCode中打开我的项目后,我遇到了一些问题。
查看错误:

播客文件内容:

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

9wbgstp7

9wbgstp71#

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

sudo arch -x86_64 gem install ffi

然后在iOS文件夹中

arch -x86_64 pod install

在这些命令之后,所有的电容器盒/插件都成功安装了。我用这个命令打开了应用程序:ionic cap open ios,并得到一个错误:No module Capacitor found,但无论如何我忽略了这个错误,并在XCode内部运行/构建了应用程序。模拟器成功打开,应用程序运行平稳。

w3nuxt5m

w3nuxt5m2#

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

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

nmpmafwu3#

在Xcode中直接在iOS捆绑包中编辑Podfile的问题是,每次构建捆绑包时,您都有可能丢失对Podfile所做的更改。
当你运行ionic cap add iosionic cap build ios时,电容器应该会自动为你构建它。
如果没有,您可以尝试在IDE中删除iOS捆绑包(例如VS代码),然后使用CLI重新添加。
显然,Podfile会因项目而异,但使用Ionic/Capacitor生成的文件通常如下所示:

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
wa7juj8i

wa7juj8i4#

如果电容器是一个豆荚,我假设它,因为你已经附上你的播客文件,
然后将带有版本的电容器pod添加到podfile中并运行pod install,它应该可用,
否则,如果它是外部框架,请确保将其添加到项目中,并将其复制到Target-> BuildPhases-> Link Binary With Libraries Option

w3nuxt5m

w3nuxt5m5#

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

  1. ionic build ios or ng build
  2. ionic build ios or ng build
  3. npx cap sync ios仅在必要时
  4. npx cap open ios

相关问题