Skip to content

Instantly share code, notes, and snippets.

@zs1621
Created March 26, 2014 11:50
Show Gist options
  • Save zs1621/9781503 to your computer and use it in GitHub Desktop.
Save zs1621/9781503 to your computer and use it in GitHub Desktop.
ota shell upload *.plist and *.ipa to your ftp; FINALURL: your file server , REMOTEPATH: your remote static file path, FTPHOST: your ftp server(sftp)
#!/bin/bash
FTPHOST=""
REMOTEPATH=""
FINALURL=""
IPA_PATH=$1
FILENAME=$(basename $IPA_PATH)
FILE=${FILENAME%.*}
DIRNAME=$(dirname $IPA_PATH)
TMP=$FILE"tmp"
SRC_PLIST=""
cd $DIRNAME rm -rf $DIRNAME"/"$FILE
mkdir $FILE
cp $IPA_PATH $DIRNAME"/"$FILE"/"
#ipatool_bundle_info
function ipatool_bundle_info() {
/usr/libexec/PlistBuddy -c "Print $1" $SRC_PLIST
}
function ipatool_appname() {
ls "$DIRNAME/$TMP/Payload"
}
function ipatool_app_path() {
echo "$DIRNAME/$TMP/Payload/`ipatool_appname`"
}
#extract_ipa
function extract_ipa() {
rm -rf $TMP && mkdir $TMP && cd $TMP || exit 1
unzip "$IPA_PATH" > /dev/null
SRC_PLIST="`ipatool_app_path`/Info.plist"
}
function create_plist() {
echo "<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>$1</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>$2</string>
<key>bundle-version</key>
<string>$3</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>$4</string>
</dict>
</dict>
</array>
</dict>
</plist>
" >> $DIRNAME"/"$FILE"/"$APP_TITLE$BUILD".plist"
}
# upload file
function upload_ipa(){
sftp $FTPHOST << EOF
cd $1
lcd $2
mkdir $APP_TITLE
cd $APP_TITLE
progress
put *
bye
EOF
}
if [ -f $1 ]; then
extract_ipa
BUNDLE_ID=`ipatool_bundle_info "CFBundleIdentifier"`
APP_TITLE=`ipatool_bundle_info "CFBundleName"`
APP_VERSION=`ipatool_bundle_info "CFBundleShortVersionString"`
BUILD=`ipatool_bundle_info "CFBundleVersion"`
IPA_NAME=$APP_TITLE$BUILD".ipa"
URL=$FINALURL/$APP_TITLE/$IPA_NAME
echo "BUNDLE_ID: $BUNDLE_ID"
echo "APP_TITLE: $APP_TITLE"
echo "app_version: $APP_VERSION"
echo "BUILD: $BUILD"
create_plist $URL $BUNDLE_ID $BUILD $APP_TITLE
mv $DIRNAME"/"$FILE"/"$FILENAME $DIRNAME"/"$FILE"/"$IPA_NAME
cd $DIRNAME
rm -rf $TMP
upload_ipa $REMOTEPATH $DIRNAME"/"$FILE
rm -rf $DIRNAME"/"$FILE
elif [ -d $1 ]; then
echo "dir" || exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment