Shell自动化打包,发布App到AppStore蒲公英

自动化打包流程和手动打包一模一样,只是用脚本解放双手而已。后面会有demo和脚本文件。


Shell自动化打包,发布App到AppStore蒲公英_第1张图片

示例

准备工作

1.准备一个打包的配置文件(配置文件:包含了证书等信息)

2.上传蒲公英的key

3苹果开发中帐号和密码,如开启了双重验证需要app specific 密码

Shell自动化打包,发布App到AppStore蒲公英_第2张图片

2.在Demo中复制如下两个plist和脚本,并做修改

脚本中把XXX修改为自己项目信息即可

Shell自动化打包,发布App到AppStore蒲公英_第3张图片



#使用方法

if[ ! -d ./IPADir ];

    then

        mkdir -p IPADir;

fi

#工程绝对路径

project_path=$(cd`dirname $0`; pwd)

#工程名 将XXX替换成自己的工程名

project_name=XXX

#scheme名 将XXX替换成自己的sheme名

scheme_name=XXX

#打包模式 Debug/Release

development_mode=Release

#build文件夹路径

build_path=${project_path}/build

#plist文件所在路径

exportOptionsPlistPath=${project_path}/exportAppstore.plist

#导出.ipa文件所在路径

exportIpaPath=${project_path}/IPADir/${development_mode}

echo "请输入你想法发布的方式 ? [ 1:app-store 2:ad-hoc] "

##

readnumber

    while([[ $number !=1]] && [[ $number !=2]])

    do

        echo"笨蛋,只能输入 1 or 2"

        echo"请输入你想法发布的方式 ? [ 1:app-store 2:ad-hoc] "

        readnumber

    done

if[ $number ==1];

    then

    development_mode=Release

    exportOptionsPlistPath=${project_path}/exportAppstore.plist

## 证书名字

    else

    development_mode=Debug

    exportOptionsPlistPath=${project_path}/exportTest.plist

fi

echo '///-----------'

echo '/// 正在清理工程'

echo '///-----------'

xcodebuild \

clean -configuration ${development_mode} -quiet  ||exit

echo '///--------'

echo '/// 清理完成'

echo '///--------'

echo''

echo '///-----------'

echo'/// 正在编译工程:'${development_mode}

echo '///-----------'

xcodebuild \

archive -workspace ${project_path}/${project_name}.xcworkspace \

-scheme ${scheme_name} \

-configuration ${development_mode} \

-archivePath ${build_path}/${project_name}.xcarchive -quiet  ||exit

echo '///--------'

echo '/// 编译完成'

echo '///--------'

echo''

echo '///----------'

echo '/// 开始ipa打包'

echo '///----------'

xcodebuild -exportArchive -archivePath ${build_path}/${project_name}.xcarchive \

-configuration ${development_mode} \

-exportPath ${exportIpaPath} \

-exportOptionsPlist ${exportOptionsPlistPath} \

-quiet ||exit

# 删除build包

if[[ -d build ]];then

rm -rf build -r

fi

if[ -e $exportIpaPath/$scheme_name.ipa ];

    then

    echo'///----------'

    echo'/// ipa包已导出'

    echo'///----------'

    open $exportIpaPath

    else

    echo'///-------------'

    echo'/// ipa包导出失败 '

    echo'///-------------'

fi

echo '///------------'

echo '/// 打包ipa完成  '

echo '///-----------='

echo''

echo '///-------------'

echo '/// 开始发布ipa包 '

echo '///-------------'

if[ $number ==1];

    then

    #验证并上传到App Store

    # 将-u 后面的XXX替换成自己的AppleID的账号,-p后面的XXX替换成自己的密码

    altoolPath="/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"

    "$altoolPath"--validate-app -f ${exportIpaPath}/${scheme_name}.ipa -u XXX [-p XXX]

    "$altoolPath"--upload-app -f ${exportIpaPath}/${scheme_name}.ipa -u  XXX -p XXX

else

    echo"请输入你要发布的平台 ? [ 1:fir 2:蒲公英] "

    ##

    readplatform

        while([[ $platform !=1]] && [[ $platform !=2]])

        do

            echo"笨蛋,只能输入 1 or 2"

            echo"请输入你要发布的平台 ? [ 1:fir 2:蒲公英] "

            readplatform

        done

            if[ $platform ==1];

                then

                #上传到Fir

                # 将XXX替换成自己的Fir平台的token

                fir login -T d58c5754d2aff40b4d883ddfefa0d079

                fir publish $exportIpaPath/$scheme_name.ipa

            else

                echo"开始上传到蒲公英"

                #上传到蒲公英

                #蒲公英aipKey

                MY_PGY_API_K=XXX

                #蒲公英uKey

                MY_PGY_UK=XXX

                curl -F"file=@${exportIpaPath}/${scheme_name}.ipa" -F "uKey=${MY_PGY_UK}" -F "_api_key=${MY_PGY_API_K}" https://qiniu-storage.pgyer.com/apiv1/app/upload

            fi

fi

echo "\n\n"

echo "已运行完毕>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"

exit 0

3.使用(此脚本适用于cocopods工程,没有用到的话pod init一下即可(必须))

在项目路径下执行./shell.sh 即可


上传蒲公英和Fir 需要准备如下

上传蒲公英需要准备:key

Shell自动化打包,发布App到AppStore蒲公英_第4张图片

 上传Fir需要安装插件

打开fir.im官网 查看fir命令行说明即可


Shell自动化打包,发布App到AppStore蒲公英_第5张图片


操作过程过中出现错误及解决方法


Shell自动化打包,发布App到AppStore蒲公英_第6张图片

1.    xcodebuild:error Unknow build action xx.xcworkspace

      我这里的错误是有个文件夹Swift Test 中间出现了空格,删除空格即可


2. 发布到app store时,输入密码后报app specific password 错误(这是因为帐号开启了双重验证,比如:短信验证)

解决如下 去苹果官网https://appleid.apple.com 找到账户设置,安全 生成密码,复制,发布时填写这个密码即可


Shell自动化打包,发布App到AppStore蒲公英_第7张图片

发布至app store 如下



到此即发布成功了,有空了分享下fastLane自动化打包

Demo 传送门https://github.com/TeeMoYan/shell-.git

Fastlane自动化打包:https://www.jianshu.com/p/f468d6ca0310

你可能感兴趣的:(Shell自动化打包,发布App到AppStore蒲公英)