美文网首页
xcodeBuild 用例

xcodeBuild 用例

作者: ZMJun | 来源:发表于2016-09-21 21:42 被阅读1627次

    怎么通过 Command line来创建我的工程?

    xcodebuilds 是一个Command line工具,允许开发者通过它建立,分析,测试,和在工程或者工作区来 存档操作(archive operations)。他能管理在工程里一个或者多个目标(targets),或者管理工程或工作区的方案(scheme)。在以下页面里,介绍了xcodebuild提供了多个这只来管理这些操作。xcodebuild在本地应用上默认的保存了输出命令。

    以下是各种xcodebuild的用法。在运行任何以下命令前,要保证导航中包含了你的项目或者工作区文件。(根目录下使用)

    • 打印所有的目标(targets),生成配置(configurations),和工程中使用的方案(schemes),在终端运行以下命令
    xcodebuild -list -project <your_project_name>.xcodeproj
    xcodebuild -list -workspace <your_project_name>.YKTicketsApp.xcworkspace
    
    • 项目运行一个方案(scheme)
    xcodebuild -scheme <your_scheme_name> build
    

    注意:xcodebuild提供了多个生成事件,如建立(build),分析(analyze)和存档(archive),这个事件都可以执行在你的目标(target)或者方案里(scheme)。但是,生成(build)会被执行在默认配置下,当没有特定的事件执行。

    • 使用配置文件来生成目标
    xcodebuild -target <your_target_name> -xcconfig <your_configuration_file>.xcconfig
    your_target_name 目标名称
    your_configuration_file 配置文件名称
    
    • 使用xcodebuild命令来改变输出路径,使用SYMROOT(生成产品路径)和DSTROOT (安装生成产品本地)生成设置来分别为测试包和.dSYM文件和生产包定义路径。
    //例1:Setting up a location for MyiOSApp's debug version
    $ xcodebuild -scheme MyiOSApp SYMROOT="/Users/username/DebugLocation"
    Build settings from command line:
    SYMROOT = "/Users/username/DebugLocation"
    .
    //例2:Setting up a location for MyiOSApp's archive
    $ xcodebuild -scheme MyiOSApp DSTROOT="/Users/username/ReleaseLocation" archive
    Build settings from command line:
    DSTROOT = /Users/username/ReleaseLocation
    

    应用存在多个配置。怎么为xcodebuild设置一个默认的生成配置。

    在xcode,项目中的配置都在配置菜单里,可以在菜单上这选一个默认配置以供xcodebuild来构建目标。使用这个菜单选一个默认配置如下图


    设置默认配置

    xcodebuild

    BSD一般命令手册

    名称(NAME)

    xcodebuild -- 生成Xcode的项目和工作区
    

    简介(SYNOPSIS)

    xcodebuild [-project projectname] [-target targetname ...][-configuration configurationname] 
    [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...]
    
    xcodebuild [-project projectname] -scheme schemename [-destination destinationspecifier] 
    [-destination-timeout value] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] 
    [buildaction ...] [setting=value ...] [-userdefault=value ...]
    
    xcodebuild -workspace workspacename -scheme schemename [-destination destinationspecifier] 
    [-destination-timeout value] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] 
    [buildaction ...] [setting=value ...] [-userdefault=value ...]
    
    xcodebuild -version [-sdk [sdkfullpath | sdkname]] [infoitem] 
    
    xcodebuild -showsdks 
    
    xcodebuild -list [-project projectname | -workspace workspacename]
    
    xcodebuild -exportArchive -exportFormat format -archivePath xcarchivepath -exportPath destination path 
    [-exportProvisioningProfile profilename] [-exportSigningIdentity identityname] 
    [-exportInstallerIdentity identityname]
    

    选项(Options)

    • -project projectname 明确规定根据工程名建立工程,需要的,如果有多个项目文件
      同一目录。
    • -target targetname 明确规定根据目标名建立目标
    • -alltargets 建立所有的目标在明确规定的项目里
    • -workspace workspacename 明确规定根据工作区名建立工作区
    • -scheme schemename 明确规定根据方案名建立方案,需要的,如果建立一个工作区
    • -destination destinationspecifier 使用指定机型,默认一个指定来兼容选定的方案
    • -destination-timeout timeout 当搜索一个目的设备,明确规定超时时间,默认是30秒
    • -configuration configurationname 当建立每个目标,明确规定使用的配置
    • -arch architecture 当建立每个目标,明确规定使用的架构
    • -sdk [<sdkfullpath> | <sdkname>] 建立一个项目或者工作区对指定的SDK,以建立适合SDK工具。参数可以是一个SDK的绝对路径,或规范名称的SDK。
    • -showsdks 显示所有可以在Xcode使用的SDKs,包括规范的名称适用于- SDK。不触发运行。
    • -list 打印工程或者在工作区里的方案的目标(targets),不触发运行。
    • -derivedDataPath path 当在工作区里操作运行时间,重写的文件夹,为导出数据使用。
    • -resultBundlePath path 在工作区里执行建立事件,写一个Bundle为结果指定路径
    • -exportArchive 指定存档(archive)输出。需要-exportFormat, -archivePath, 和-exportPath. 不能只通过一个Build操作
    • -exportFormat format 指定输出格式,有效的格式是IPA (iOS archives only),PKG (Mac archives only), 和应用。如果没有指定,xcodebuild将尝试自动检测格式为IPA或PKG。
    • -archivePath xcarchivepath 指定路径为存档产品(archive)为存档操作,或者指定输入(当-exportArchive没有使用)
    • -exportPath destinationpath 为输出蟾皮你指定输出路径,路径要包含名称
    • -exportProvisioningProfile profilename 当输出存档,指定要使用的provisioning profile
    • -exportSigningIdentity identityname 当输出存档,指定要使用签名ID,如果可以,加上-exportProvisioningProfile.
    • -exportInstallerIdentity identity name 当输出存档,指定要使用安装程序签名ID,如果可以,加上-exportSigningIdentity or -exportProvisioningProfile
    • -exportWithOriginalSigningIdentity 当输出一个存档,指定使用签名ID来创建存档
    • buildaction ... 在目标上指定创建事件来执行,允许的事件为
      • build,在(SYMROOT)路径下建立目标,这是默认事件
      • analyze,在(SYMROOT)路径下分析目标或者方案,这需要指定一个方案。
      • archive,在(SYMROOT)路径下存档方案,这需要指定方案
      • test,在(SYMROOT)路径下测试方案 ,这个需要指定一个方案和任意一个目标设备
      • installers,拷贝工程源到源路径(SYMROOT)
      • install,建立目标和安装他到目标字典到目标源上(DSTROOT).
      • clean,清除在建立源(SYMROOT)的项目和相关文件。
    • -xcconfig filename 当运行所有目标,加载这个参数的运行设置。这些设置将覆盖所有其他设置,包括在命令行上单独设置。
    • -dry-run, -n 打印将被执行的命令,但是不执行他们
    • -skipUnavailableActions 跳过不能执行的操作,并且不会失败。这个设置仅授权没有设置-scheme
    • setting=value 设置建立的设置 setting to value.
    • -userdefault=value 设置用户默认 default to value.
    • -version 显示xcode版本信息。不会触发建立。当和-sdk使用在配置里,将会显示SDK的版本或者所有的SKDs,当有-sdk参数。另外,一个简单的版本信息应该返回指定的infoitem
    • -usage 显示xcodebuild的惯例(usage)信息

    例子(EXAMPLES)

    • xcodebuild clean install
      清除建立字典。

    • xcodebuild -target MyTarget OBJROOT=/Build/MyProj/Obj.root SYMROOT=/Build/MyProj/Sym.root

    • xcodebuild -sdk macosx10.6

    • xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme

    • xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme archive

    • xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -destination 'platform=OS X,arch=x86_64' test

    • xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -destination 'platform=iOS Simulator,name=iPhone' -destination 'platform=iOS,name=My iPad' test

    • xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -destination generic/platform=iOS build

    • xcodebuild -exportArchive -exportFormat IPA -archivePath MyMobileApp.xcarchive -exportPath MyMobileApp.ipa -exportProvisioningProfile 'MyMobileApp Distribution Profile'

    • xcodebuild -exportArchive -exportFormat APP -archivePath MyMacApp.xcarchive -exportPath MyMacApp.pkg -exportSigningIdentity 'Developer ID Application: My Team'


    That's all,thanks!

    相关文章

      网友评论

          本文标题:xcodeBuild 用例

          本文链接:https://www.haomeiwen.com/subject/grwaettx.html