From e8cf1866320fd2fcc15f2950222fe1c2d9a5832a Mon Sep 17 00:00:00 2001 From: chenchengfang Date: Wed, 27 Feb 2013 18:45:55 +0800 Subject: [PATCH] some change --- DailyBuild | 24 ------------ ipa-publish | 58 ++++++++++++++++++++++------- sftpDownloadFile | 47 +++++++++++++++++++++++ sftpUploadFile | 48 ++++++++++++++++++++++++ updateLocalIndexHtml | Bin 0 -> 30996 bytes upload => uploadItemsServicesFiles | 23 +++++++----- 6 files changed, 154 insertions(+), 46 deletions(-) delete mode 100755 DailyBuild create mode 100755 sftpDownloadFile create mode 100755 sftpUploadFile create mode 100755 updateLocalIndexHtml rename upload => uploadItemsServicesFiles (70%) diff --git a/DailyBuild b/DailyBuild deleted file mode 100755 index 5fb55f3..0000000 --- a/DailyBuild +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/zsh - -#TARGETS名称 -target_name="HuaRongDao" - -#工程路径 -project_path="/Users/ccf/iphone/HuaRongDao" - -#build文件夹路径 -build_path=${project_path}/build - - -#编译工程 -cd $project_path -xcodebuild -configuration DailyBuild -target "$target_name" - -#打包 -cd $build_path -mkdir -p ipa/Payload -cp -r ./DailyBuild-iphoneos/${target_name}.app ./ipa/Payload/ -cd ipa -zip -r ${target_name}.ipa * -rm -rf Payload - diff --git a/ipa-publish b/ipa-publish index ec78827..b42f221 100755 --- a/ipa-publish +++ b/ipa-publish @@ -8,7 +8,7 @@ #-------------------------------------------- # 修改日期:2012/09/27 # 修改人:ccf -# 修改内容:去掉打包的部分脚本,只保留生成协议文件部分,以后此脚本依赖ipa-build脚本 +# 修改内容:去掉打包的部分脚本,只保留生成协议文件部分,以后此脚本依赖ipa-build脚本生成的内容 #-------------------------------------------- # 修改日期:2013/02/18 # 修改人:ccf @@ -18,29 +18,42 @@ # 修改人:ccf # 修改内容:添加上传服务器后邮件提醒功能 #-------------------------------------------- +# 修改日期:2013/02/27 +# 修改人:ccf +# 修改内容:添加更新服务器上工程索引文件功能 +#-------------------------------------------- + +#获取当前shell文件所在的绝对路径 +shell_path=$(dirname $0) + #须配置内容 start -#存放该shell文件夹的路径 -shell_path=~/shell +#sftp参数设置 +sftp_server=192.168.xx.xx +sftp_username=xx +sftp_password=xx +sftp_workpath="/usr/share/xx/xx/xx" + + #发布应用的url地址 -pulish_url="http://**.com/" +pulish_url="http://xx.com/xx" #以下是邮箱的相关设置 #收件人 -email_reciver=**@** +email_reciver=xx@xx.com #发送者邮箱 -email_sender=**@** +email_sender=xx@xx.com #邮箱用户名 -email_username=** +email_username=xx #邮箱密码 -email_password=** +email_password=xx #smtp服务器地址 -email_smtphost=** +email_smtphost=smtp.exmail.qq.com #可配置内容 end @@ -109,7 +122,7 @@ unzip tmp.zip #app文件中Info.plist文件路径 app_infoplist_path=$(pwd)/Payload/*.app/Info.plist #取版本号 -#bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" ${app_infoplist_path}) +bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" ${app_infoplist_path}) #取build值 bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" ${app_infoplist_path}) #取bundleIdentifier @@ -138,6 +151,12 @@ mkdir $target_name cp ./ipa-build/*.ipa ./$target_name/${target_name}.ipa cp ../Icon@2x.png ./$target_name/${target_name}_logo.png cd $target_name + +#ipa下载url +ipa_download_url=${pulish_url}/${target_name}/${target_name}.ipa +#itms-services协议串 +ios_install_url="itms-services://?action=download-manifest&url=${pulish_url}/${target_name}/${target_name}.plist" + #生成install.html文件 cat << EOF > index.html @@ -153,7 +172,7 @@ cat << EOF > index.html

- 点击这里安装 + 点击这里安装

@@ -176,7 +195,7 @@ cat << EOF > ${target_name}.plist kind software-package url - ${pulish_url}/${target_name}/${target_name}.ipa + ${ipa_download_url} kind @@ -215,7 +234,20 @@ cat << EOF > ${target_name}.plist EOF #调用upload脚本来将文件上传到服务器 -${shell_path}/upload $target_name || exit +${shell_path}/uploadItemsServicesFiles $target_name ${sftp_server} ${sftp_username} ${sftp_password} ${sftp_workpath} || exit + +#切换到tmp目录下 +serverIndexHtmlName=index.html +cd /tmp +rm ${serverIndexHtmlName} +#从服务器下载index.html +${shell_path}/sftpDownloadFile ${serverIndexHtmlName} ${sftp_server} ${sftp_username} ${sftp_password} ${sftp_workpath} || exit +#更新index.html +${shell_path}/updateLocalIndexHtml ${display_name} ${bundleShortVersion} ${ipa_download_url} ${ios_install_url} || exit +#上传index.html +${shell_path}/sftpUploadFile ${serverIndexHtmlName} ${sftp_server} ${sftp_username} ${sftp_password} ${sftp_workpath} || exit + + #发送邮件 if [ $should_email = y ];then diff --git a/sftpDownloadFile b/sftpDownloadFile new file mode 100755 index 0000000..c2f0d37 --- /dev/null +++ b/sftpDownloadFile @@ -0,0 +1,47 @@ +#!/usr/bin/expect -f + +#-------------------------------------------- +# 功能:使用sftp到服务器指定目录下载指定文件到当前路径 +# 使用说明:命令有5个参数。注意:目前该脚本无参数验证功能,必须5个参数,否则脚本运行结果会发生错误 +# 参数1:要下载的文件名 +# 参数2:服务器地址 +# 参数3:sftp用户名 +# 参数4:sftp密码 +# 参数5:sftp工作路径 +# 作者:ccf +# E-mail:ccf.developer@gmail.com +# 创建日期:2013/02/27 +#-------------------------------------------- + + +#参数设置 +set downloadFileName [lindex $argv 0] +set host [lindex $argv 1] +set username [lindex $argv 2] +set password [lindex $argv 3] +set hostfilepath [lindex $argv 4] + +#sftp连接 +spawn sftp $username@$host + +#第一次sftp时需输入yes +expect { + "(yes/no)?" {send "yes\r"; exp_continue} + "password:" {send "$password\r"} +} + +#切换到所要放置的目录下 +expect "sftp>" +send "cd $hostfilepath\r" + +#从服务器上下载指定 +expect "sftp>" +send "get $downloadFileName\r" + +#退出sftp +expect "sftp>" +send "bye\r" + +expect eof + + diff --git a/sftpUploadFile b/sftpUploadFile new file mode 100755 index 0000000..f91ef35 --- /dev/null +++ b/sftpUploadFile @@ -0,0 +1,48 @@ +#!/usr/bin/expect -f + +#-------------------------------------------- +# 功能:使用sftp将当前路径下指定文件上传到服务器指定路径中 +# 使用说明:命令有5个参数。注意:目前该脚本无参数验证功能,必须5个参数,否则脚本运行结果会发生错误 +# 参数1:要上传的文件名 +# 参数2:服务器地址 +# 参数3:sftp用户名 +# 参数4:sftp密码 +# 参数5:sftp工作路径 +# 作者:ccf +# E-mail:ccf.developer@gmail.com +# 创建日期:2013/02/27 +#-------------------------------------------- + + +#参数设置 +set uploadFileName [lindex $argv 0] +set host [lindex $argv 1] +set username [lindex $argv 2] +set password [lindex $argv 3] +set hostfilepath [lindex $argv 4] + +#sftp连接 +spawn sftp $username@$host + +#第一次sftp时需输入yes +expect { + "(yes/no)?" {send "yes\r"; exp_continue} + "password:" {send "$password\r"} +} + +#切换到所要放置的目录下 +expect "sftp>" +send "cd $hostfilepath\r" + +#从服务器上下载指定 +expect "sftp>" +send "put $uploadFileName\r" + +#退出sftp +expect "sftp>" +send "bye\r" + +expect eof + + + diff --git a/updateLocalIndexHtml b/updateLocalIndexHtml new file mode 100755 index 0000000000000000000000000000000000000000..ca6fdf1f42ad1539d82203f236a043ac682f8875 GIT binary patch literal 30996 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" send "cd $hostfilepath\r" + #判断文件夹是否已经存在,若不存在,则新建。之后进入到文件夹中 expect "sftp>" send "ls $filefolder\r" @@ -49,7 +57,4 @@ send "put ./*\r" expect "sftp>" send "bye\r" -interact - - - +expect eof