如何让php执行xcodebuild,Xcodebuild命令使用

article/2025/1/11 20:39:32

Xcode-select命令

xcode-select是Mac系统自带的命令行工具,属于用户系统内/usr/bin。当电脑上安装多个Xcode时,xcode-select用来选择命令行工具为哪一个版本的Xcode服务。

命令行工具安装指令:xcode-select --install

选择指定的Xcode路径:xcode-select --switch

常见命令

man命令

man可以进行命令用法的在线文档查询,包括使用例子。比如:man xcodebuild。

xcpretty命令

命令行输出美化小工具,可以对错误,警告给予高亮显示。使用方式:xcodebuild | xcpretty

xcrun命令

xcrun用于调用其他命令执行,如:xcrun xcodebuild。

xcrun的调用是基于xcode-select选择的工具链,当电脑中存在多个版本的xcode时,使用xcrun调用可以保证命令的环境一致性。

xcodebuild命令

下面重点介绍xcodebuild如何使用。

在使用xcodebuild时,从终端进入到projectname .xcodeproj 目录下。

有workspace时,参数中要带-workspace和-scheme。

只有project时,则参数中要带 -project和-scheme选项。

xcodebuild在Xcode中存在的默认配置在路径project/info页面中

1041a855-9af2-4a17-a86d-eef9fd05e7a3.jpg

xcodebuild的常见使用场景

简单命令行build

xcodebuild

单写一个xcodebuild,工程编译使用默认的scheme和编译配置。

scheme、targets、配置、目标设备、SDK和导出数据位置可以在后面自定义配置

archive打包操作

tType();switch(type.Name){case"DateTime":case"String":case"Boolean":cell.SetCellValue(value.ToString

xcodebuild archive -workspace PROJECT_NAME.xcworkspace-scheme SCHEME_NAME -configuration release -archivePath

EXPORT_ARCHIVE_PATH-archivePath:设置项目的归档路径

导出ipa文件

ate,FileAccess.Write);fs.Write(bytes);fs.Dispose();System.Console.ReadKey(); 测试结果: 就是这内存占用

xcodebuild -exportArchive -archivePath EXPORT_ARCHIVE_PATH-exportPath EXPORT_IPA_PATH -exportOptionsPlist ExportOptionsPlistPath-allowProvisioningUpdates-exportArchive:导出ipa-exportPath:导出ipa文件的路径-exportOptionsPlist:文件导出时的配置信息-allowProvisioningUpdates:允许xcodebuild与苹果网站通讯,进行自动签名,证书自动更新,生成。

单元测试

ame="entity">数据privatevoidCreateDataRow(introwIndex,objectentity){IRowdataRow=_shee

xcodebuild test -project PROJECT_NAME.xcodeproj -scheme SCHEME_NAME-destination "platform=iOS Simulator,name=iPhone 6s,OS=11.2" -configuration Debug-derivedDataPath output-derivedDataPath:产生的缓存文件放在./output目录下

configuration:编译环境,选择Debug/Release-destination :选择test时的目标设备和系统版本号

UI测试/单元测试,针对某个方法进行测试

xcodebuild test -project PROJECT_NAME.xcodeproj -scheme SCHEME_NAME-destination "platform=iOS Simulator,name=iPhone 6s,OS=11.2"

-only-testing:TARGET_NAME/CLASS_NAME/FUNC_NAME -quiet-only-testing: 只测试某一个方法,target名/类名/方法名-quiet : 除了错误和警告不打印任何信息

使用上次编译成功的测试用例进行测试

注意:app创建时需要指定app的bundle名

self.app = [[XCUIApplication alloc] initWithBundleIdentifier:@"com.xxx.id"];

[self.app launch];

1.UI测试/单元测试,不进行代码编译,利用上次编译的缓存(包括工程编译+测试用例编译),进行重新跑测试。

xcodebuild test-without-building -workspace PROJECT_NAME.xcworkspace-scheme doctor -destination "platform=iOS Simulator,name=iPhone 6s,OS=12.0"

-only-testing:TARGET_NAME/CLASS_NAME/FUNC_NAME

2.UI测试,使用选项-xctestrun生产测试文件,进行测试调试

//1.产生xctestrun文件

xcodebuild build-for-testing -project PROJECT_NAME.xcodeproj -scheme SCHEME_NAME-destination "platform=iOS Simulator,name=iPhone 6s,OS=11.2" -configuration Debug-derivedDataPath output-derivedDataPath: derivedDataPath/Build/Products目录下生成一个.xctestrun文件,包含测试信息//2.使用xctestrun文件(不带-workspace/-project/-scheme参数)

xcodebuild test-without-building -destination "platform=iOS Simulator,name=iPhone 6s,OS=12.0"

-xctestrun DerivedDataPath.xctestrun -only-testing:TARGET_NAME/CLASS_NAME/FUNC_NAME-xctestrun:有这个选项就从指定的路径下寻找bundle,没有这个选项在derivedDataPath下寻找bundle-only-testing:TARGET_NAME/CLASS_NAME/FUNC_NAME

xcodebuild常见action

8a9058fb-3004-4d20-9db3-25baa5664747.jpg

onsPlistExportOptionsPlistPath-allowProvisioningUpdates-exportArchive:导出ipa-exportPath:导出ipa文件的路径-ex

NAME.xcworkspace-schemeSCHEME_NAME-configurationrelease-archivePathEXPORT_ARCHIVE_PATH-archivePath:设

另外一些常见的命令

genstrings 命令

本地化命令,根据指定的C/Object-C源文件生成.strings文件。

genstrings -a /path/to/source/files/*.m

ibtool 命令

本地化命令,作用于xib文件。

ibtool --generate-strings-file Localizable.strings en.lpoj/Interface.xib

onsPlistExportOptionsPlistPath-allowProvisioningUpdates-exportArchive:导出ipa-exportPath:导出ipa文件的路径-ex

NAME.xcworkspace-schemeSCHEME_NAME-configurationrelease-archivePathEXPORT_ARCHIVE_PATH-archivePath:设

文章参考:


http://chatgpt.dhexx.cn/article/ORDkDiYd.shtml

相关文章

iOS 自动构建命令——xcodebuild

想想当初天天来到公司,每天需要做一件事就是打开Xcode打包ipa,上传到fir。日复一日月复一月年复一年的做着同样的事情,作为有志成为优秀工程师的我来说,这是必须要解决的问题,所以决定自动化解决问题。 简介 xcodebu…

iOS开发-思维导图(初级)

简介:本脑图只整理了一些自认为比较基础的东西(比较主观),可能适用于部分初学者,对于正在进阶的小伙伴参考意义可能不大哦~😁 如果有小伙伴觉得哪些知识也需要加到图中,欢迎评论区留言&#xff…

IOS开发之证书

分别为证书、appID、设备、描述文件 一、证书Certificates 证书类型: Software:开发证书(程序员开发app)、分发证书(真机调试)、发布证书(正式发布) Services:通知证书&…

怎么学习iOS,如何学习iOS开发?

近年来ios app开发在不断发展中,各中小型也如雨后春笋纷纷露头,像广州商侣软件公司这样的app开发企业可以说是处处可见,然而ios app开发到底该如何入手,如何才能如鱼得水般在这个领域里面畅游呢? 一、什么是ios app开发 ios app开发是指针对苹果公司所生产的手机的ios系统…

零基础学习 iOS 开发

作者:匿名用户 链接:https://www.zhihu.com/question/22000647/answer/114700565 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 作为一名混迹iOS开发圈近4年的码农,资历不深不浅&a…

IOS小白入门指南

加入ios 项目已经一个多月了,本篇文章主要介绍IOS开发入门的一些基础知识,帮助想学习iOS开发的人更有效率地学习。 目录 需要的计算机基础 开发语言选择 IOS两种开发语言的异同 Objective-C和swift的相同点: 二者的不同点&#xff1a…

java ios开发_使用Java开发iOS应用

自从使用Objective C开发原生的iOS应用以来,就有许多使用别的语言来开发iOS应用的替选方案。比如说,下面就列出了一些: PhoneGap, 使用HTML/JS来开发 RubyMotion,使用Ruby ionic,使用AngularJS开发 我最近发现的一个的是RoboVM,你可以通过它来用Java开 自从使用Objective…

IOS开发进阶学习资料(提升必备)

最近整理了下IOS学习资料,包含了入门、进阶、性能优化、面试和学习书籍,算是比较全面的,在这里分享给大家,希望对大家有用。 先晒出IOS学习路线图,大家照着图谱修炼。 学习社区 objc中国 learn IOS Ray Wenderlich…

iOS开发进阶(二):走近iOS原生开发

文章目录 一、前言二、知识储备三、 Object-C四、启动流程五、拓展阅读 一、前言 在应用 uni-app 进行跨平台APP开发过程中,发现并不支持视频播放小窗功能,且插件市场提供的插件用户体验不好,遂决定自行开发 uni-app 原生插件。 uni-app原生…

iOS开发学习系列(1)———Swift语言入门

缘起 对于成为全栈开发者的目标而言,很好奇自己几年前怎么就没想过iOS开发的事情。iOS好歹也是移动操作系统两巨头之一。反思了下,有可能是因为之前对Object-C太无感导致的。现在趁着Swift,借这个机会重新整理iOS的开发。本系列虽然是iOS开发…

IOS开发学习资料集合(开发必备)

最近整理了下IOS学习资料,包含了入门、进阶、性能优化、面试和学习书籍,算是比较全面的,在这里分享给大家,希望对大家有用。 先晒出IOS学习路线图,大家照着图谱修炼。 学习社区 objc中国 learn IOS Ray Wenderlich…

iOS开发学习路线

那么现在说正题,如何成为负责任的开发者? 关注作者:点击关注二字可以找到大神组织首先要负责,对自己的项目负责。如果是自己新开的项目,要保证随时都能清晰的想到项目当中每个地方是怎么实现的,测试或者用户反馈了问题以后,能立马想到可能的错误原因。 如果是接手的项目…

对项目需求管理的认识和体会

下面是对一位项目经理关于需求管理的访谈: 做了那么多个项目,我深深感到对项目的需求把握管理好了,是项目成功的关键。对需求的管理大概有那么几个活动,首先是需求获取,这是一个确定和理解客户的需要和期望的过程&…

项目范围管理:WBS

创建工作分解结构是把项目可交付成果和项目工作分解成较小的、更易于管理的组件的过程。工作分解结构(WBS)是项目管理的基础,项目的所有规划和控制工作都必须基于工作分解结构。如果没有工作分解结构,就谈不上项目的进度计划、成本…

项目治理-项目需求范围管理:范围蔓延、镀金

范围蔓延、镀金 场景1: “甲方需要做一个App电商系统,项目对接非常满意,快项目结尾的时候,甲方的老板说,听说现在流行小程序,这个电商系统一定要在小程序上面也可以运行,如果不支持&#xff0…

怎样使用GitLab管理项目?

1. issue 介绍 一般 master 分支默认是被锁住的,其目的是保护该分支。普通开发人员可以创建 issue 后建立对应的分 支然后去完成任务。完成issue 后便要合并分支,只需发送 merge request ,等待 owner 审核才能合并到 master 分支上。合并的过程中可能…

软件需求管理过程

软件需求管理过程 软件需求管理过程 软件需求管理的过程 需求确认(确认需求规格) 需求获取–>需求分析–>需求规格编写–>需求验证需求变更(开发过程中的需求管理) 需求获取,需求分析,需求规格编写,需求验证,需求变更…

项目管理——需求收集与管理

项目管理——需求收集与管理 VS 需求收集对于产品经理来说,都已经属于老生常谈了。在产品的立项和设计前需要先做需求调研,在这里我们就来谈谈如何进行需求收集和管理。 一、需求收集目的 需求收集的目的就是了解用户目前所需要的是什么,最迫…

项目管理--需求分析

项目管理-需求分析 一、需求分析概述软件需求分类 需求分析是什么? 二,需求分析的任务需求分析的任务主要有两个方面:需求分析的困难:需求分析过程需求管理 三,需求分析案例需求分析的过程包括:exp:需求陈述需求陈述中…

谈产品研发项目需求及需求变更管理

公司经过2年多所研发的产品,终于正式试用了,中间经历过了无数次调整,产品研发过程是不断迭代的过程,发生需求变更、设计变更的情况非常多,为不影响创新和开拓思路,研发处在开放状态,当前阶段是时…