簡體   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