簡體   English   中英

Ionic2將自定義iOS插件與Alamofire框架集成為依賴項

[英]Ionic2 integrate custom iOS plugin with Alamofire framework as dependency

我已經在機器上安裝了cordova 7.0Ionic 3.4.0 我使用Plugman制作了一個自定義插件,其結構如下:

src - ios & android folders with the native files
www - .js file
plugin.xml
package.json

將其添加到Ionic 2項目(正在使用cordova-ios 4.4.0)中,效果很好,可以按預期生成,並且可以使用它。

現在,我需要將Alamofire框架添加為插件的依賴項。 我需要在安裝插件時自動處理它。 我從文檔( 如何將框架添加為依賴項 )中看到應該添加:

<framework src="GoogleCloudMessaging" type="podspec" spec="~> 1.2.0" />

到自定義插件中的plugin.xml。 我添加了它,但是當我將插件重新添加到ionic2項目中時,它也沒有安裝框架/吊艙。

我看到了其他與我有關的主題,但都無濟於事。 我已經嘗試了一切,但無法完成。

另外,根據文檔,plugin.xml中的標簽有些奇怪:

與type =“ podspec”配對,這是您要安裝的CocoaPod的規范字符串(僅靜態庫)。 CocoaPod支持僅在cordova-ios 4.3.0和cordova-cli 6.4.0中存在 對於您的插件,請確保添加適當的標簽和package.json依賴項,以確保向后兼容。

這不是很奇怪,它將在新版本的cordova-ios中工作嗎?

插件-package.json內容:

{
    "name": "cordova-plugin-requestService",
    "version": "1.0.0",
    "author": "*******",
    "private": true,
    "engines": {
        "cordovaDependencies": {
            "1.0.0":  { "cordova-ios": ">=4.4.0" }
        }
    }
}

plugin.xml內容:

<!-- iOS -->
<platform name="ios">
    <dependency id="cordova-plugin-add-swift-support" version="^1.6.0" />
    <framework src="Alamofire" type="podspec" spec="~> 4.4.0" />
    <config-file target="config.xml" parent="/*">
        <feature name="requestService">
            <param name="ios-package" value="requestService" />
        </feature>
    </config-file>
    <source-file src="src/ios/requestService.swift" />
</platform>

我主要解決了問題:

  • 制作了Ionic的新手(帶有cordova和ionic的最新版本)-由於cli和項目之間的不兼容性,將遷移到較新的版本。

  • 自定義插件的plugin.xml中的used標簽

  • 添加了平台-沒有插件(目前)
  • 手動添加插件(它將在平台等中生成Podfile),盡管由於Alamofire而引發錯誤。 添加到podfile use_frameworks! 而且應該沒問題。

我還在觸發平台添加ios時自動添加了插件

不幸的是,cordova尚不支持此功能,但這是一個未解決的問題: https : //issues.apache.org/jira/browse/CB-11893

如果您不想每次都手動編寫,則可以在添加平台后使用鈎子,也可以使用https://github.com/blakgeek/cordova-plugin-cocoapods-support

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM