2016-03-01 45 views
0

我正在使用this plugin並將其集成爲this demo-application。這使用Star SDK如何通過config.xml爲Ionic/Cordova集成(第三方)SDK?

但是我怎樣才能改變我的config.xml中的某些東西,當我做離子構建時SDK總是被添加/加載?因爲現在當我們從不同的MacBook構建時,我們都必須將其重新添加到我們的項目中。

它現在特定於StarIO SDK,但我認爲其他人在添加SDK時可能會遇到同樣的困難。

編輯:每次之前,我從我的離子項目檔案的iOS應用程序,我要做的手動以下:

  • 在我的Xcode項目
  • 鏈接包括框架和包(SDK)一些默認的框架/庫,例如:ExternalAccessory.framework
  • 安裝外置配件的協議在info.plist

這是很多工作,尤其是當我們每週有多個構建時。而且我們並不總是部署在同一臺機器上,而且很難忘記一個步驟。

我看到很多Cordova軟件包,例如在沒有Podfile時需要手動執行某些操作,或者它總是需要一些配置。

+0

我每天和Cordova和Ionic一起工作,我很難弄清楚你想問什麼。 –

+0

已更改問題 – user1469734

回答

3

這是StarIOPlugin創建者應該做的事情,而不是告訴您手動添加Star SDK。首先在StarIOPlugin的github存儲庫中添加一個問題。

如果作者不想這樣做,那麼你可以插入插件並自己更新它。

你應該通過增加StarIO.frameworksrc/ios文件夾

現在你需要可以做編輯plugin.xml文件

首先這行添加到plugin.xml的框架複製到Xcode的開始項目

<source-file src="src/ios/StarIO.framework" framework="true" /> 

然後添加此兩行添加藍牙和ExternalAccesory構架

<framework src="CoreBluetooth.framework" /> 
<framework src="ExternalAccesory.framework" /> 

最後,寫信息。plist使用

<config-file target="*-Info.plist" parent="UISupportedExternalAccessoryProtocols"> 
    <array> 
     <string>jp.star-m.starpro</string> 
    </array> 
</config-file> 

我還沒有測試,但應該足夠了。

-2

我想你必須在這裏做一些手動工作。如果它是一個簡單的命令,您可以在package.json中創建一個「腳本」,並使用「npm run script_name」運行它。

根據您的特定需求,您還可以將任務添加到gulpfile.js(由離子版本使用)或編寫一個JS腳本,該腳本通過特定的Cordova生命週期步驟執行。 Check this out瞭解更多詳情。默認的Ionic項目有一個example hook,你可以檢查靈感。

+0

不,試過了,但那不是。這是手動工作。 – user1469734

+0

你仍然可以通過一個鉤子來做你所要求的,它只是不太舒服,例如:https://raw.githubusercontent.com/diegonetto/generator-ionic/master/templates/hooks/after_prepare/update_platform_config.js – AMilassin

0

我是最初提供iOS支持的開發人員,我不明白爲什麼您需要執行多次提到的配置。你是否從你的項目中移除並添加了iOS平臺?這是唯一應該引起這種情況的事情。

有幾個原因,我沒有在我的原始公關包括圖書館。但我的推理很可能有缺陷。

這是我在想什麼......

  • 我不知道,包括他們在另一個開源項目庫與星軟件許可的規定。
  • 包括該框架將永遠有義務讓參與者保持最新版本的星型
  • iOS有多種框架可用於該插件,一種用於常規藍牙打印機,一種用於mPOP。因此,包括其中一個框架可能會限制用戶與所有可能平臺集成的能力。

無論如何,文檔都應該改進以幫助其他開發者解決相同的問題。

+0

他說他必須重新補充一點,如果他試圖從另一臺Mac構建,如果你在一個團隊或有幾臺開發機器,你必須在每臺機器上完成所有手動步驟。有時在平臺更新上有錯誤,你必須刪除並重新添加。關於你的觀點,1號,你正在分發他們的框架,而不是他們的代碼,所以不應該有許可證問題。 2,是的,貢獻者應該不時更新框架。 3我不認爲我完全理解這一點。 – jcesarmobile

+0

在點#1上,框架未被編譯。這是StarIO的源代碼,我必須包含它,並且他們的許可證表示您不能重新分配他們的代碼。但是,如果我誤解了這一點,請告訴我。 關於第3點,我試圖解釋的是插件可以使用兩種不同的SDK,它取決於您嘗試整合的確切硬件。所以,我不想將所有人鎖定在一個或另一個之中,因爲他們需要選擇使用哪個SDK。希望這更有意義。 – Geo242