app打包发到蒲公英上 ios

2018-05-02 15:14:46 TnkTechSHL 阅读数 2312

需注意的是第6步的选择。获取证书做到附加项之前就可以了。

获取证书:获取证书方式

——————————————————————————————————————————————————

打包时要注意的是在选择证书类型时:

    1)如果选择Select for Ad Hoc Deployment是测试版,一般只支持100台测试机使用;

Save for Enterprise Deployment是企业版,所有手机可以安装使用。

    2)链接网址里缺少一步,打包时需要选择证书,如果电脑中有多个证书可以根据时间判断。

打包成IPA:打包方式

——————————————————————————————————————————————————

发布到蒲公英:

    1)访问 https://www.pgyer.com/ 并登录。登录之后在右上角点击 我的应用 。

    2)跳转页面后,点击左侧 发布应用

    3)点击 立刻上传 后添加对应IPA文件并描述文件属性进行发布。



2017-06-23 17:17:32 bluewindaa 阅读数 946


转载请注明出处:
http://blog.csdn.net/bluewindaa/article/details/73650089


前言

在Mac上配置使用脚本进行自动打包,网上搜了好多文章,自己又琢磨了一段时间,总算捣鼓好了,现在写出来总结一下。


准备工作

1.从仓库拉取代码到本地,假设文件夹名为Test (下文提到的文件夹都指该目录)

2.将打包使用到的脚本test.sh文件放入到文件夹中

3.如果是8.3以后的XCode,需从旧的Xcodecopy一份打包时要用到的PackageApplication放到如下目录中:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/

注:不添加会打包失败,提示

xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH

4.然后执行命令

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/
chmod +x /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication




PackageApplication下载地址:

链接: https://pan.baidu.com/s/1nuCSmpz 密码: 4gkq


开始

脚本一共分为如下几部分:路径、证书配置;拉取最新代码;打包;导出ipa;上传蒲公英;发送邮件


1.路径、证书配置

echo "\n**********************************************\n"
echo "schemes: Test0 Test1 "
echo "configuration: Debug Release"
echo "\n**********************************************\n"
SCHEMENAME=$1
CONFIGURATION=$2
BRANCHNAME=develop
DATE=`date +%Y%m%d_%H%M`
HOMEPATH=/Users/Cecilia/Desktop
SOURCEPATH=/Users/Cecilia/Desktop/DoubleTeacherMode
IPAPATH=$HOMEPATH/iOS打包/$BRANCHNAME/$DATE
IPANAME=$SCHEMENAME.ipa
Test0AdHocProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Test0ReleaseProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Test0DebugProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Test1AdHocProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Test1ReleaseProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Test1DebugProvisioningProfile="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Test0ReleaseCodeSignIdentity="iPhone Distribution: xxxxxxxxxxx network technology co., LTD (xxxxxxxxxx)"
Test0DebugCodeSignIdentity="iPhone Developer: xxx (xxxxxxxxxx)"
Test1ReleaseCodeSignIdentity="iPhone Distribution: xxxxxxxxxx technology co., LTD (xxxxxxxxxx)"
Test1DebugCodeSignIdentity="iPhone Developer: xxx (xxxxxxxxxx)"
if [[ $SCHEMENAME == "Test0" && $CONFIGURATION == "Release" ]]; then
	CODE_SIGN_IDENTITY="$doubleTeacherReleaseCodeSignIdentity"
	PROVISIONING_PROFILE="$doubleTeacherAdHocProvisioningProfile"
elif [[ $SCHEMENAME = "Test0" && $CONFIGURATION = "Debug" ]]; then
    CODE_SIGN_IDENTITY="$doubleTeacherDebugCodeSignIdentity"
    PROVISIONING_PROFILE="$doubleTeacherDebugProvisioningProfile"
elif [[ $SCHEMENAME = "Test1" && $CONFIGURATION = "Release" ]]; then
    CODE_SIGN_IDENTITY="$qiFengReleaseCodeSignIdentity"
    PROVISIONING_PROFILE="$qiFengAdHocProvisioningProfile"
elif [[ $SCHEMENAME = "Test1" && $CONFIGURATION = "Debug" ]]; then
    CODE_SIGN_IDENTITY="$qiFengDebugCodeSignIdentity"
    PROVISIONING_PROFILE="$qiFengDebugProvisioningProfile"
fi


2.拉取最新代码

echo "请输入远程电脑密码(输入密码后,按回车即可)"
read macPassword
# git update
git checkout $BRANCHNAME
if [ $? -ne 0 ]; then    
	exit 1
fi
git pull
#pod update --verbose --no-repo-update
if [ $? -ne 0 ]; then    
	 exit 1
fi
# delete trash files
if [ -e $IPAPATH/* ]; then    
	 mv $IPAPATH/* ~/.Trash    
	 if [ $? -ne 0 ]; then        
	  echo "error:Delete trash files failed!"   
		   exit 1   
	 fi
fi


3.打包

xcodebuild \
-workspace $SOURCEPATH/Test0.xcworkspace \
-scheme $SCHEMENAME \
-configuration $CONFIGURATION \
CODE_SIGN_IDENTITY="$CODE_SIGN_IDENTITY" \
PROVISIONING_PROFILE="$PROVISIONING_PROFILE" \
clean \
build \
-derivedDataPath $IPAPATH


4.导出ipa

xcrun -sdk iphoneos PackageApplication \
-v $IPAPATH/Build/Products/$CONFIGURATION-iphoneos/$SCHEMENAME.app \
-o $IPAPATH/$IPANAME


5.上传蒲公英,uKey和_api_key需到蒲公英官网上获取

curl -F "file=@$IPAPATH/$IPANAME" \
-F "uKey=6a988d155c4870d89f23ab16ada511c6" \
-F "_api_key=41b7a601a124634f7accd9454a1914d5" \
https://qiniu-storage.pgyer.com/apiv1/app/upload


6.发送邮件

cd  $IPAPATH
zipName="tempZipName.zip"
zip -r $zipName $IPAPATH/$IPANAME
export LANG=C.UTF-8
#$echo <123> | sudo -S <command>
# 修改大文件限制
echo $macPassword | sudo -S postconf -e message_size_limit=0
postconf -d | grep size
# echo message_size_limit
# 压缩包路径
zipPath=$IPAPATH/$zipName


echo $macPassword | sudo -S postconf -e message_size_limit=0
postconf -d | grep size

emailTitle="有新包啦"
emailBody="新包已经上传\n 请移步https://www.pgyer.com/xxxx 进行安装"
( echo $emailBody; uuencode $zipPath ipa.zip) | mail -s $emailTitle cecilia_900@163.com
echo "\033[36;1m发送邮件成功 \033[0m"


附上完整的脚本文件

#!/bin/bash
# author Cecilia

echo "\n**********************************************\n"
echo "schemes:  Test0   Test1 "
echo "configuration: Debug  Release"
echo "\n**********************************************\n"


SCHEMENAME=$1
CONFIGURATION=$2
BRANCHNAME=develop

DATE=`date +%Y%m%d_%H%M`
HOMEPATH=/Users/Cecilia/Desktop
SOURCEPATH=/Users/Cecilia/Desktop/Test0


IPAPATH=$HOMEPATH/iOS打包/$BRANCHNAME/$DATE
IPANAME=$SCHEMENAME.ipa


Test0AdHocProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"
Test0ReleaseProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"
Test0DebugProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"


qiFengAdHocProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"
qiFengReleaseProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"
qiFengDebugProvisioningProfile="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"


Test0ReleaseCodeSignIdentity="iPhone Distribution: xxxxxxxxxx network technology co., LTD (xxxxxxxxxx)"
Test0DebugCodeSignIdentity="iPhone Developer: xxx (xxxxxxxxxx)"


qiFengReleaseCodeSignIdentity="iPhone Distribution: xxxxxxxxxx network technology co., LTD (xxxxxxxxxx)"
qiFengDebugCodeSignIdentity="iPhone Developer: xxx (xxxxxxxxxx)"


if [[ $SCHEMENAME == "Test0" && $CONFIGURATION == "Release" ]]; then
    CODE_SIGN_IDENTITY="$Test0ReleaseCodeSignIdentity"
    PROVISIONING_PROFILE="$Test0AdHocProvisioningProfile"
elif [[ $SCHEMENAME = "Test0" && $CONFIGURATION = "Debug" ]]; then
    CODE_SIGN_IDENTITY="$Test0DebugCodeSignIdentity"
    PROVISIONING_PROFILE="$Test0DebugProvisioningProfile"
elif [[ $SCHEMENAME = "Test1" && $CONFIGURATION = "Release" ]]; then
    CODE_SIGN_IDENTITY="$qiFengReleaseCodeSignIdentity"
    PROVISIONING_PROFILE="$qiFengAdHocProvisioningProfile"
elif [[ $SCHEMENAME = "Test1" && $CONFIGURATION = "Debug" ]]; then
    CODE_SIGN_IDENTITY="$qiFengDebugCodeSignIdentity"
    PROVISIONING_PROFILE="$qiFengDebugProvisioningProfile"
fi


echo "请输入远程电脑密码(输入密码后,按回车即可)"
read macPassword

# git update
git checkout $BRANCHNAME
if [ $? -ne 0 ]; then
    exit 1
fi


git pull
#pod update --verbose --no-repo-update
if [ $? -ne 0 ]; then
    exit 1
fi


# delete trash files
if [ -e $IPAPATH/* ]; then
    mv $IPAPATH/* ~/.Trash
    if [ $? -ne 0 ]; then
        echo "error:Delete trash files failed!"
    exit 1
    fi
fi


#build Test0
xcodebuild \
-workspace $SOURCEPATH/Test0.xcworkspace \
-scheme $SCHEMENAME \
-configuration $CONFIGURATION \
CODE_SIGN_IDENTITY="$CODE_SIGN_IDENTITY" \
PROVISIONING_PROFILE="$PROVISIONING_PROFILE" \
clean \
build \
-derivedDataPath $IPAPATH


if [ -e $IPAPATH ]; then
echo "xcodebuild Successful"
else
echo "xcodebuild failed"
exit 1
fi

#xcrun .ipa
xcrun -sdk iphoneos PackageApplication \
-v $IPAPATH/Build/Products/$CONFIGURATION-iphoneos/$SCHEMENAME.app \
-o $IPAPATH/$IPANAME


if [ -e $IPAPATH/$IPANAME ]; then
echo "\n-------------------\n\n\n"
echo "Configurations! Build Successful"
echo "\n\n\n-------------\n\n"
echo "Current Branch log:"
git log -2
open $IPAPATH
else
echo "\n-------------------\n"
echo "error:Create IPA failed"
echo "Please check the cause of failure and contact developers"
echo "\n-------------------\n"
fi



curl -F "file=@$IPAPATH/$IPANAME" \
-F "uKey=6a988d155c4870d89f23ab16ada511c6" \
-F "_api_key=41b7a601a124634f7accd9454a1914d5" \
https://qiniu-storage.pgyer.com/apiv1/app/upload



cho "\n\n\n\n-------------------\n\n\n\n"
echo "\033[36;1m打包总用时: ${SECONDS}s \033[0m"

cd  $IPAPATH
zipName="tempZipName.zip"
zip -r $zipName $IPAPATH/$IPANAME
export LANG=C.UTF-8
#$echo <123> | sudo -S <command>
# 修改大文件限制
echo $macPassword | sudo -S postconf -e message_size_limit=0
postconf -d | grep size
# echo message_size_limit
# 压缩包路径
zipPath=$IPAPATH/$zipName


echo $macPassword | sudo -S postconf -e message_size_limit=0
postconf -d | grep size

emailTitle="有新包啦"
emailBody="新包已经上传\n 请移步https://www.pgyer.com/xxxx 进行安装"
( echo $emailBody; uuencode $zipPath ipa.zip) | mail -s $emailTitle cecilia_900@163.com
echo "\033[36;1m发送邮件成功 \033[0m"


如果使用过程中有什么问题,欢迎留言。
转载请注明出处,谢谢
















                                    
2018-04-02 16:12:36 u013602835 阅读数 3442

    之前研究过用Jenkins搭建自动化打包平台(在本人博客里),用来给测试人员打包或者上传AppStore,但是这个相对有点复杂,最近在研究使用脚本文件来实现iOS的打包发布,实现一键持续集成的工作。使用的时候,只需要在控制台执行一下脚本文件,就可以完成编译、打包、发布的所有流程。


    这里有一篇总结的很不错的博客,大家可以参考,我就不再重复解释了,链接如下(里边有使用介绍和脚本文件下载地址):

    一键自动打包发布到Fir和AppStore

    本人对博客中的脚本文件做了一些更改(主要有将生成的文件移到了项目根目录之外,删除了编译产生的中间文件,加了上传到蒲公英平台的方法),所以可以到本人的Github中去下载最新的脚本文件:下载地址


    文中作者上传到了Fir平台,所以需要安装fir-cli。文中有关于fir-cli安装错误的总结,这里还有一篇文章,也是一些关于fir-cli安装报错的解决办法,链接如下:用Python脚本自动打包iOS项目并提交到fir.im  (注意:文章中关于ruby源的配置,要先确保自己的网络能访问到该地址:https://ruby.taobao.org/,我之前在这里踩过坑,因为我们公司的网络屏蔽了淘宝等购物网站,所以访问不到,一直配置不成功,尴尬。。。)

     可能有的公司项目并没有使用Fir,而是将包上传到了蒲公英进行测试分发,这时候,只需要将shell脚本下面的部分更改就可以上传到蒲公英平台了(User Key 和 API Key 去蒲公英平台 账户设置-API信息 去找):

     


   更新(18年4月12号)-针对收不到推送的问题:

   这几天测试人员说APP上收不到极光推送了,后来想了想发现上边plist文件中打测试包的话选择的是 ad-hoc 类型,ad-hoc打包时Xcode自动配置的是生产的证书(包括推送证书),而后台给推送的是开发环境,所以,出现了收不到推送的情况。

   所以如果打测试包,那么最好选择打development类型的包,所以,exportTest.plist文件只需要做如下修改即可:

   

   上图中的method参数对应的就是Xcode打包的四种类型,这里method参数的值共这四种:development、ad-hoc、enterprise、app-store。

     关于Xcode打包类型可以参考:Xcode打包生成ipa四个选项的具体区别



   上边主要是用Shell脚本,直接去打包发布,下面再介绍2种其他的持续化集成方案:

   1、用Jenkins搭建打包平台,见我的另外一篇博客:搭建iOS自动化打包平台(利用Jenkins持续集成iOS项目)

   2、用Fastlane搭建自动化打包平台,见博客:iOS中使用Fastlane实现自动化打包和发布


2017-08-15 11:10:32 MinggeQingchun 阅读数 3595

iOS开发中,怎么打包为ipa格式的软件包以及怎么安装到手机终端上?
对于自己来说,我们只需要真机调试就能安装到自己手机上。但是如果我们想给更多的人测试呢,当然你也可以拿他们手机一个一个的安装,这样很费力。所以我们可以打包一个ipa文件,然后这ipa可以安装到已注册的设备上。

证书之类的就不在这里介绍了,不清楚的可以看上篇 http://www.jianshu.com/p/5aaba235a790

在开发者中心中,你可能留意到我们的描述文件有2类,共3种(说的是iOS App)。在Development类下就一种,用于真机调试Debug模式的描述文件;然而在Distribution类下,有2种描述文件。我们更多的只是用 App Store——Create a distribution provisioning profile to submit your app to the App Store,而很少用Ad Hoc——Create a distribution provisioning profile to install your app on a limited number of registered devices.他们的作用很清楚,前者用于提交你的APP到APPstore时使用,而后者用于安装你的应用到有限数量的已注册的设备上。 我们的想法不就是想将应用安装到有限的设备上吗?(在未发布前)

下面就来看看怎么打包带签名的ipa包。
1、创建描述文件
既然证书我们已经有了,下面我们就创建一个Ad Hoc 的描述文件吧。
和创建其他描述文件一样。选择选择Provisioning Profiles ->All->点击+号。

记得选的是Ad Hoc


0D1E72FD-18A1-4A59-AC96-928827205F24.png

选择appid


DE023BEF-5BF6-4A64-A632-EEB6216F9CF3.png

选择发布证书



![Uploading B22ECE45-8255-4B25-866F-0A6F110F7530_343320.png . . .]

选择想要安装的测试设备


E3F9E399-3112-495F-9CE9-85F2DD797B3A.png

给描述文件命名,这里最好取一个你自己可以区分的名称,不然项目多了,不好找


B88F7BBD-D5D9-4B9B-93FF-9FB6E50BFCED.png

下载描述文件


B03286D9-8C32-4040-9108-E6478972B577.png

找到下载文件,双击安装到Xcode ,双击时看到闪一下就说明安装成功了。如果Xcode 是打开的,界面会跳转到Xcode界面。


FF1F453E-0863-4F5E-887E-29270D531131.png

安装完成之后,可以在这里/Users/XXXXX/Library/MobileDevice/Provisioning Profiles找到相应的文件,如果以后换了台Mac,发现不能签名了,可以直接拷贝这些文件过去。


844323-d3d4c6629f65a5e8.png.jpg

2、证书签名

在Xcode7之前,真机调试和打包ipa是必须要签名的。但是Xcode7之后,真机调试不需要签名了。打包ipa也可以不需要签名,那不是可以绕过苹果安装app了??想得美,如果不签名打包的ipa那是不能安装的!!!打包可以不需要签名,但是你要想安装的话,必须签名。
签名打包就是在编译的过程中加入证书签名,那肯定是需要去Xcode中配置的,目前网上有方法能实现企业级证书打包签名不需要在编译时,而在编译之后。因此现在打包有两种方式:
a、在Xcode中配置code sign,实现签名打包ipa。适用于企业级账号证书,个人账号证书。

在Build Setting下,在code signing里,Code signing Identity依然按照Debug时使用开发证书,Release时使用发布证书;对于描述文件,Provisioning Profile按照Debug时使用开发证书生成的描述文件,而Release使用发布证书生成的描述文件,只是当你选择Distribution时,一定要选测Ad Hoc.


21_417688_9fc25aaab90b412.png

当然Xcode 8 是可以选择自动配置描述文件的。


100C6365-769B-4129-A45F-A8ED0B6CD6D0.png

b、在Xcode中无证书打包ipa,上传到指定工作室网站,淘宝上现在一大堆打包服务的,由别人用他们的账号签名ipa。适用于企业及账号。

3.打Xcode证书签名打包

设置有效的Archive配置,如下图所示,这里面一定要选择复制“Release”,因为发布版本一定是release的,这个做程序的都知道哈。


4F0D6822-1C06-4F72-8231-5FD1D7D759CE.png

325CB3B3-9F84-4EB1-B6C2-DDA2AC1A8688.png

D0B2F9EC-722E-490C-8CEF-248335C06B09.png

这里选择刚才复制“Release”的AdHoc,当然你也可以不做第1步,这里直接选择“Release”也是可以的,添加AdHoc纯粹是为了区分,方便管理。


76616AAB-4C3B-4C38-ADA8-CA1E203593A2.png

4、Archive 打包
打包之前我们要将编译设备,设置成iOS Device 。 选择其他模拟器是不能Archive ,你会发现他是灰的。


D44EEACB-69C1-42CA-8D80-FD60C9C54613.png

F86E1992-43EC-4BDD-89F2-E5778559169A.png

先编译下command +B,没错的话就按照上面的打包吧,按照上面的执行Archive 。成功后会弹出下面界面,然后执行Export。


E9B73ECD-32DD-4974-80FA-A8B5BC3C355F.png

选择save for Ad Hoc ,上面的那个是上传到appStore上的


0F542DC2-44CE-4FD8-AA99-945846726CC8.png

选择对应的账号


13B4FF68-3FD7-4236-B8AC-E2B9457234B8.png

请稍等。。。。。。


1BFFD1B9-93D4-499D-8251-8110B89832E0.png

成功后,选择你想安装的设备上,前提是这些设备已经注册了,如果没有设备的话,请去注册。


3720E2AF-ABEC-41FB-B838-C99F3947AB01.png

3F5A830B-31A2-4D84-9A64-8D132F15AB75.png

将文件导出到你想放的位置,我是导出到桌面上的。


6ECDF488-6933-4520-8D3F-802C4B9D7257.png

5、将内侧用的ipa包发布到蒲公英上
首先我们要创建一个账号


4E381555-104A-4FE6-A6C7-3FDBECCE9887.png

注册账号我就不再这里说了


0AA98A0F-F405-4340-A19E-622E1065F18A.png

如果你已经有账号了的话,并认证成功的话,就开始上传我们的应用吧。


0C0CD0A4-A6D8-4742-89BF-E65FBC336090.png

F0F6FF97-F7B0-4E31-B28D-1C01C9C22E65.png

选择刚才保存在桌面上的ipa文件。


B8E4BCBB-F972-4471-AA8E-9E838DCD8512.png

编辑应用的信息


6BF52A54-CBD4-4B18-8762-1B8B72841ADA.png

E36B659B-F85A-4846-B956-C01968D068D5.png

注意这里写着内测版


D212537A-9ED1-49C7-8820-F08EA035E1CF.png


作者:allenzhan
链接:http://www.jianshu.com/p/b8f8509f64fa
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2017-07-27 09:48:12 baidu_15100009 阅读数 802

IOS蒲公英自动打包

每一位IOS 开发者都打过 *.ipa包,打完包之后还得发给相应的测试人员或者给领导等。
而且每次打包平均在4分钟左右,不要小看这4分钟,累计起来就不是怎么点儿啦。
从而我决定一个自动打包的方法,那就是蒲公英啦。

好废话不多话啦,看实际的。

安装蒲 Fastlane

  1. 查看api文档
  2. 官方安装指南
  3. ruby、rubygems、bundler 都要安装成功。

    fastlane add_plugin pgyer

这个过程需要等一会儿,成功会显示Successfully installed plugins
如果不成功把提示copy一下然后去搜索多找找。

    sudo nvram boot-args="kext-dev-mode=1 rootless=0";sudo reboot

我安装失败之后找到过这个重启之后再安装就可以了。


在 Fastlane 启动蒲公英插件

打包跟CocoaPods差不多,先到项目的跟目录下。
创建一个配置文件
官网文档说 vim ./fastlane/Fastfile 但是有些时候是vim无法保存。
这个时候你可以

    mkdir fastlane   // 创建文件夹
    cd fastlane      // 进入文件夹中
    vim Fastfile     // 创建配置文件

这样创建很少出现vim无法保存的情况。
Fastfile 里面输入内容如下:

    lane :beta do
          // 根据打包证书可以设置以下几个值:(app-store、ad-hoc、development、enterprise)
          gym(export_method: "development") // Xcode 8.3及以上的需要这行
          // 普通的上传
          pgyer(api_key: "7f15xxxxxxxxxxxxxxxxxx141", user_key: "4a5bcxxxxxxxxxxxxxxx3a9e")
          // 这个可以设置一个密码相对安全一些吧。
          pgyer(api_key: "7fxxxx141", user_key: "4a5xx3a9e", password: "123456", install_type: "2") 
          还可以添加更新日志
          pgyer(api_key: "7fxx141", user_key: "4axx3a9e", update_description: "更新日志内容")
    end

打包并自动上传 App 到蒲公英

来一发 走起

    bundle exec fastlane beta

上传成功提示fastlane.tools finished successfully
这里写图片描述

这里写图片描述

到这里就说明你的自动打包圆满成功 

谢谢大家能够在众多博客中找到我的稀里糊涂的博客~

祝所有开发者 开发之路一切顺利!~

加油吧 ~~

少年