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

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


示例

准备工作

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

2.上传蒲公英的key

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

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

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



#使用方法

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

 上传Fir需要安装插件

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



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


1.    xcodebuild:error Unknow build action xx.xcworkspace

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


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

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


发布至app store 如下



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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容