美文网首页
ios脚本打包

ios脚本打包

作者: biggerworld | 来源:发表于2017-05-18 15:16 被阅读0次

#!/bin/bash

#$1表示第一个参数

PROJECTPATH="$1"

build_configuration="Release"

# 是否编译工作空间 (例:若是用Cocopods管理的.xcworkspace项目,赋值true;用Xcode默认创建的.xcodeproj,赋值false)

is_workspace=$"false"

# 指定要打包编译的方式 : Release,Debug...

build_configuration="Release"

projectDirectory=`echo ${PROJECTPATH%/*}`

projectFile=`echo ${PROJECTPATH##*/}`

scheme_name=`echo ${projectFile%.*}`

echo $projectDirectory

cd "$projectDirectory"

info_plist_path="${projectDirectory}/${scheme_name}/Info.plist"

EXPORT_PLIST="${projectDirectory}/${scheme_name}/EXPORT_PLIST.plist"

bundle_version=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $info_plist_path`

bundle_build_version=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" $info_plist_path`

bundle_identifier=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $info_plist_path`

# 删除旧.xcarchive文件

rm -rf ~/Desktop/$scheme_name-IPA/$scheme_name.xcarchive

# 指定输出ipa路径

export_path=~/Desktop/$scheme_name-IPA

# 指定输出归档文件地址

export_archive_path="$export_path/$scheme_name.xcarchive"

# 指定输出ipa地址# 指定输出ipa名称 : scheme_name + bundle_version

export_ipa_path="$export_path"

ipa_name="$scheme_name-v$bundle_version"

# 指定输出文件目录不存在则创建

if [ -d "$export_path" ] ; then

echo $export_path

else

mkdir -pv $export_path

fi

# 判断编译的项目类型是workspace还是project

if $is_workspace ; then

# 编译前清理工程

xcodebuild clean -workspace ${PROJECTPATH}.xcworkspace \

-scheme ${scheme_name} \

-configuration ${build_configuration}

xcodebuild archive -workspace ${PROJECTPATH}.xcworkspace \

-scheme ${scheme_name} \

-configuration ${build_configuration} \

-archivePath ${export_archive_path}

else

# 编译前清理工程

echo ${PROJECTPATH}

xcodebuild clean -project ${PROJECTPATH} \

-scheme ${scheme_name} \

-configuration ${build_configuration}

xcodebuild \

-scheme "${scheme_name}" \

-archivePath  ${export_archive_path} \

-configuration  ${build_configuration} \

archive

#如果加上 预制描述文件

#xcodebuild \

#-scheme "${SCHEME_NAME}" \

#-sdk "${TARGET_SDK}" \

#-archivePath "${PROJECT_BUILDDIR}/${SCHEME_NAME}.xcarchive" \

#-configuration Release \

#PROVISIONING_PROFILE="${PROVISIONING_PROFILE}" \

#archive

fi

#  检查是否构建成功

#  xcarchive 实际是一个文件夹不是一个文件所以使用 -d 判断

if [ -d "$export_archive_path" ] ; then

echo "项目构建成功 🚀 🚀 🚀 "

else

echo "项目构建失败 😢 😢 😢"

exit 1

fi

echo "*************************  开始导出ipa文件  *************************  "

xcodebuild \

-exportArchive \

-archivePath ${export_archive_path} \

-exportOptionsPlist "${EXPORT_PLIST}" \

-exportPath ${export_ipa_path}

## 修改ipa文件名称

mv $export_ipa_path/$scheme_name.ipa $export_ipa_path/$ipa_name.ipa

## 输出打包总用时

echo "打包总用时: ${SECONDS}s "

open -R "$export_ipa_path"

相关文章

  • Xcode自动打包

    [iOS]从零开始写个自动打包IPA脚本 【iOS打ipa包】:使用终端实现自动打包 iOS自动打包并发布脚本

  • iOS自动打包ipa(shell脚本)

    系列 iOS自动打包ipa(shell脚本)iOS自动打包ipa(Python脚本) 安装xctool shell...

  • iOS自动打包ipa(Python脚本)

    系列 iOS自动打包ipa(shell脚本)iOS自动打包ipa(Python脚本) 安装Python库 Pyth...

  • iOS脚本一键打包

    ios打包脚本的使用 相关链接: 1. IOS工程自动打包并发布脚本的实现。 2. Xcode中Command L...

  • 2019-02-15

    ios打包时签名失败 ios打包时证书和provisioningprofile都已经切换更新,打包脚本中指定tea...

  • iOS自动打包脚本

    iOS自动打包脚本 iOS自动打包脚本,并实现图片素材、文字资源、部分代码的替换和重签名,基于python实现。 ...

  • ios-面试-脚本打包原理

    脚本打包,自然是为了方便打包,便于ios开发不用手动打包,便于非ios开发能去打包! 打包过程 Xcode打包的过...

  • iOS面试题:脚本打包

    脚本打包,自然是为了方便打包,便于ios开发不用手动打包,便于非ios开发能去打包! 打包过程 Xcode打包的过...

  • iOS开发知识体系之《脚本自动化打包--xcodebuild》

    iOS脚本自动化打包方案--xcodebuild 本文主要xcodebuild脚本自动化打包并上传到蒲公英或者Ap...

  • App itunes connect 提交审核"UIR

    解决方案 xcodebuild 来自iOS自动打包并发布脚本

网友评论

      本文标题:ios脚本打包

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