美文网首页
iOS 命令行构建工具

iOS 命令行构建工具

作者: ccnyou | 来源:发表于2019-03-30 23:06 被阅读0次

用 xcodebuild 工具尝试了自动编译,后续部署持续集成环境可以用得上,中间踩过一些坑,现记录一下。

目录结构如下:

.
├── HelloWorld          // 代码目录
├── bin                 // 最终输出的 ipa 目录
├── build               // 构建的临时目录
└── tools               // 存放脚本的目录
    ├── build.sh        // 构建脚本文件
    └── options.plist   // 构建选项 plist 文件

build.sh 脚本内容大致如下

#!/bin/bash
SRC_PATH=../HelloWorld       # 代码目录
PROJECT_NAME=HelloWorld      # 项目名称
SCHEME=$PROJECT_NAME         # 项目里面的 scheme
BUILD_DIR=../build           # 编译的临时目录
RESULT_DIR=../bin            # 生成的 ipa 目录
CODE_SIGN_IDENTITY="iPhone Distribution: xxx (xxx)" # 开发者证书名称,后面细说
PROVISIONING_PROFILE="xxx-xxx-xxx-xxx-xxx" # provisioning_profile 文件ID,后面细说

# clean
rm -rf $BUILD_DIR
mkdir $BUILD_DIR

# build archive
xcodebuild archive -workspace "$SRC_PATH/$PROJECT_NAME.xcworkspace" \
                  -scheme $SCHEME \
                  -configuration Release \
                  -archivePath "$BUILD_DIR/$PROJECT_NAME" \
                  CODE_SIGN_IDENTITY="$CODE_SIGN_IDENTITY" \
                  PROVISIONING_PROFILE="$PROVISIONING_PROFILE"

# export archive
xcodebuild -exportArchive -archivePath "$BUILD_DIR/$PROJECT_NAME.xcarchive" \
                          -exportPath "$BUILD_DIR" \
                          -exportOptionsPlist ./options.plist \
                          -allowProvisioningUpdates YES \
                          CODE_SIGN_IDENTITY="$CODE_SIGN_IDENTITY" \
                          PROVISIONING_PROFILE="$PROVISIONING_PROFILE"

# copy bin
cp "$BUILD_DIR/$PROJECT_NAME.ipa" "$RESULT_DIR/"
  • CODE_SIGN_IDENTITY 可以通过 Keychain ,找到证书,点开简介,把证书名字复制过来,如图


    证书
  • PROVISIONING_PROFILE 可以在 ~/Library/MobileDevice/Provisioning Profile 中找到

    PP文件

options.plist 文件大致如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>app-store</string> // 可选项:app-store, ad-hoc, package, enterprise, development, developer-id
    <key>provisioningProfiles</key>
    <dict>
        <key>com.xxx.xxx</key>  // 包名
        <string>xxx_appstore</string>  // provisioning_profile 文件在 developer.apple.com 下面的名称
    </dict>
</dict>
</plist>

然后在 tools 目录,执行 ./build.sh,代码没有错误的话,bin目录即可看到对应的 ipa。

相关文章

  • 【进阶系列】前端开发环境构建(五)JS -- Grunt

    2.2 Grunt——js项目命令行构建工具 Grunt是一个基于任务的JavaScript项目命令行构建工具,...

  • vue实践笔记

    安装方式 直接用script工具 命令行工具 实践指南 环境准备vue命令行工具 可以方便的命令行工具构建一个we...

  • iOS 命令行构建工具

    用 xcodebuild 工具尝试了自动编译,后续部署持续集成环境可以用得上,中间踩过一些坑,现记录一下。 目录结...

  • iOS 逆向随笔 - theos

    theos是iOS最方便的越狱开发工具包,可以用来构建命令行程序。 下载和安装theos 下载 jtool 签名工...

  • iOS 开发工具

    一、iOS常用的工具 命令行工具:cocoapod 图形工具:Charles和Reveal 插件工具:Alcatr...

  • Vue 安装

    命令行模式安装 Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用。该工具提供开箱即用的构建工具配置...

  • react-native CFBundleIdentifier

    mac环境下,在命令行中run-ios构建时报错:CFBundleIdentifier", Does Not Ex...

  • Nodejs构建自己的全局命令行工具

    关键字: Nodejs本文主要介绍一下windows下如何构建一个自己的全局命令行工具,了解创建命令行工具的原理,...

  • 组件化Gradle语法

    Gradle 作为一款优秀的构建工具,也作为是目前 Android 主流的构建工具,不管是通过命令行还是通过 GU...

  • 开发命令行工具的 12 个最佳实践

    简评:设计良好的命令行应用是极富生产力的工具,本文介绍了开发命令行工具的 12 个最佳实践 CLI 是构建产品的绝...

网友评论

      本文标题:iOS 命令行构建工具

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