[英]Not able to create IPA using xcodebuild command through jenkins shell script
[英]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.