[英]Flutter Plugin: share code between iOS and MacOS
我在插件的根目錄中有一個公共目錄,其中包含應該由 iOS 和 MacOS 共享的代碼。 我將兩者的.podspec
文件中的source_files
為指向公共目錄: s.source_files = '../common/Classes/**/*'
,但是現在當我構建任何一個 ios/macos 示例時,構建失敗並顯示找不到插件導入的錯誤。
/Flutter/GeneratedPluginRegistrant.swift:8:8: 錯誤:沒有這樣的模塊'plugin_name'
這是在 iOS 和 Macos 之間共享代碼的正確方法嗎? 我該如何解決?
看來這不是在 iOS 和 MacOS 之間共享代碼的正確方式。 相反,我應該做的是:
.podspec
文件不變。ios/Classes
和macos/Classes
創建每個公共代碼文件的符號鏈接(假設在相應的目錄中):ln -s ../../apple/Classes/SwiftSomePlugin.swift SwiftSomePlugin.swift
就我而言,我只有一個文件,但如果您有更多文件,則需要為每個文件創建符號鏈接。
最終結果應如下所示:
├── apple
│ └── Classes
│ └── SwiftSomePlugin.swift
├── ios
│ ├── Assets
│ ├── Classes
│ │ ├── SomePlugin.h
│ │ ├── SomePlugin.m
│ │ └── SwiftSomePlugin.swift -> ../../apple/Classes/SwiftSomePlugin.swift
│ └── some.podspec
├── macos
│ ├── Classes
│ │ └── SwiftSomePlugin.swift -> ../../apple/Classes/SwiftSomePlugin.swift
│ └── some.podspec
現在運行構建,它應該會成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.