2017-06-15 39 views
0

我已經安裝在機器科爾多瓦7.0 & 離子3.4.0上。 我做了使用plugman一個自定義插件,它的結構如下:預期Ionic2與Alamofire框架集成定製iOS的插件作爲依賴

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

其添加到離子2項目(這是使用科爾多瓦-IOS 4.4.0)做工精細,它的產生和我可以使用它。

現在我需要添加Alamofire框架作爲我的插件的依賴項。我需要它是自動處理當安裝一個插件。

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

到plugin.xml在定製插件:我從我應該補充的文件(How to add framework as dependency)看到。我添加了它,但是當我重新將插件添加到ionic2項目中時,它不會安裝框架/ pod。

我看到了與我有關的其他主題,但都沒有幫助我。我試過了所有的東西,但是我無法完成。

此外,一些奇怪來自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> 

回答

0

我主要解決的問題:

  • 變成離子的新鮮起動器(與cordova和離子的最新版本) - 將遷移到新版本,因爲它們之間不兼容氣候和項目。

  • 在定製插件

  • 增加平臺的plugin.xml的二手標籤 - 無需插件(現在)
  • 手動添加插件(它會產生podfile到平臺和其他的東西) 它雖然會因爲Alamofire而拋出一個錯誤。添加到podfile use_frameworks!它應該沒問題。

我還增加了插件時自動觸發平臺添加IOS

不幸的是,科爾多瓦尚不支持這一點,但它是一個開放的問題: https://issues.apache.org/jira/browse/CB-11893

您可以使用後鉤如果您不想每次都手動寫入,請添加平臺或https://github.com/blakgeek/cordova-plugin-cocoapods-support