簡體   English   中英

使用xcodebuild命令從Cordova項目創建IPA

[英]Create IPA from a Cordova project with xcodebuild command

我正在嘗試構建一個系統,該系統可以根據源代碼(Cordova SDK應用程序項目)和可選的設置設置(類似於PhoneGap的Build)來編譯項目。 在幕后,我嘗試使用xcodebuild命令創建最終IPA並將其返回給用戶。 所有使用Cordova開發並准備使用以下命令通過XCode進行編譯的項目:

cordova platform add ios

cordova prepare ios

問題是xcodebuild需要項目的方案,根據我對主題的搜索,僅當您使用XCode GUI打開項目時才生成該方案。

有什么方法可以僅使用命令行工具為項目生成方案嗎? 每個項目的方案都一樣嗎,所以我可以將靜態副本復制到要編譯的每個項目中?

在這件事上,我並不是真正的XCode或Mac專家,所以我很樂意對解決方案的工作方式和原因(如果有解決方案)進行清晰的解釋。

編輯:

只是為了澄清我的最終見解:

當我使用XCode GUI(雙擊.xcodeproj)打開項目時,它會生成方案,然后我可以成功使用xcodebuild命令,而不會出現任何問題。 但是我需要這個系統是完全自動化的,以便用戶可以上載用Cordova框架構建的項目,並讓該系統為他生成IPA(如果他選擇的話)。 (他還可以選擇Cordova框架支持的其他平台)。 最終類似於PhoneGap的構建。

您可以使用構建掛鈎腳本以編程方式生成方案,Cordova CLI將在構建iOS之前運行該腳本。 我在這里寫了一篇博客文章,但是這里是一個總結:

我選擇使用xcodeproj Ruby gem,可以通過以下方式獲得它:

sudo gem install xcodeproj

然后在您的Cordova項目的hooks文件夾中創建一個鈎子腳本“ fix_xcode_schemes.rb”,將其設置為755文件權限,使其可執行,並將其放入腳本中:

#!/usr/bin/env ruby
require 'xcodeproj'
xcproj = Xcodeproj::Project.open("platforms/ios/schemedemo.xcodeproj")
xcproj.recreate_user_schemes
xcproj.save

調整platform / ios / schemedemo.xcodeproj以匹配您的項目名稱。

然后運行腳本,編輯項目的config.xml並添加:

<platform name="ios">
    <hook type="after_platform_add" src="hooks/fix_xcode_schemes.rb" />
    ...
</platform>

我鏈接到的博客文章上的完整代碼和Github。 在這里,我使用after_platform_add,因此Cordova CLI將在添加iOS平台后添加方案。 對於現有項目,如果您不想刪除並重新添加ios平台以使用我的原始示例,則可能需要將其交換為before_prepare或before_build以添加方案。 Cordova Hook文檔在這里

暫無
暫無

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

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