闲来无事的懒人-打包ipa

gym 打包

cd项目根目录, 创建自动打包脚本:

#!/bin/bash
#计时
SECONDS=0
#假设脚本放置在与项目相同的路径下
project_path=$(pwd)
#取当前时间字符串添加到文件结尾
now=$(date +"%Y_%m_%d_%H_%M_%S")
#指定项目的scheme名称
scheme="Your App Name"
#指定要打包的配置名
configuration="Appstore"
#指定打包所使用的输出方式,目前支持app-store, package, ad-hoc, enterprise, development, 和developer-id,即xcodebuild的method参数
export_method='app-store'
#指定项目地址
workspace_path="$project_path/AppName.xcworkspace"
#指定输出路径
output_path="./build"
#指定输出归档文件地址
archive_path="$output_path/AppName${now}.xcarchive"
#指定输出ipa地址
ipa_path="$output_path/AppName${now}.ipa"
#指定输出ipa名称
ipa_name="AppName${now}.ipa"
#获取执行命令时的commit message
commit_msg="$1"
#输出设定的变量值
echo "===workspace path: ${workspace_path}==="
echo "===archive path: ${archive_path}==="
echo "===ipa path: ${ipa_path}==="
echo "===export method: ${export_method}==="
echo "===commit msg: $1==="
#先清空前一次build
gym --workspace ${workspace_path} --scheme ${scheme} --clean --configuration ${configuration} --archive_path ${archive_path} --export_method ${export_method} --output_directory ${output_path} --output_name ${ipa_name}

#输出总用时
echo "===Finished. Total time: ${SECONDS}s==="

提升脚本权限

chmod +x gym.sh

执行脚本

./gym.sh
然后在项目根目录选择对应ipa 用 Application Loader 上传 即可

fastlane 安装 执行

进入iterm
$ sudo gem install fastlane -NV
成功后 cd 到跟目录 然后fastlane init 然后更改为下面配置
将文件 fastlane/Fastfile 内容更换为下面脚本

default_platform :ios
scheme = "Your App Name"

def prepare_version(options)
    increment_version_number(
        version_number: options[:version]
    )

    increment_build_number(
        build_number: options[:build]
    )
end

  desc "Deploy a new version to the App Store"

  lane :appstore do |options|

    prepare_version(options)
    full_version = options[:version] + '_' + options[:build]

    gym(
      scheme: "#{scheme}",
      workspace: "#{scheme}.xcworkspace",
      silent: true,
      clean: true,
      configuration: "Release",
      export_method: "app-store",
      output_directory: "./build",
      output_name: "#{scheme}_#{full_version}.ipa"
      )

    deliver(
    force: true,
        skip_screenshots:true,
    skip_metadata: true,
    submit_for_review:true,
    automatic_release:true
    )
    
  end

项目根目录运行 fastlane appstore version:1.0.0 build:001
版本和构建版本根据项目当前情况 运行结束及上传成功

如果打包archive成功 没有导出ad_hoc ipa 应该去生成对应配置证书

两种对比 第二种相对省事 可是时间可能比第一种慢

你可能感兴趣的:(闲来无事的懒人-打包ipa)