[英]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.