sh plistとipaをつくってscpで上传するやつ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh plistとipaをつくってscpで上传するやつ相关的知识,希望对你有一定的参考价值。

_usage() {
cat << _USAGE_
  usage: upload_ipa <config_json> <version>

  This program depends on the following commands
    jq
    ipa (shenzhen)

  and needs config.json like this.
    {
      "plist":"project/Info.plist",
      "ipaurl":"https://path/to/project.ipa",
      "title":"title_in_plist",
      "bundle_id":"jp.co.foo.bar",
      "scp": {
        "dest": "host_name_or_ip:hostpath", // e.g. "168.33.192.12:~/ipas/"
        "user": "username",
        "identity_file": "/Users/myuser/.ssh/id_rsa"
      }
    }

_USAGE_
}

_conf() {
  echo $(jq "$1" $config_file | sed -e 's/[" ]//g')
}

_require() {
  type $1 >/dev/null 2>&1
  echo $?
}

if [[ $# -ne 2 || $(_require "jq") -eq 1 || $(_require "ipa") -eq 1 ]]
then
  _usage
  exit
fi

if [[ ! -f $1 ]]
then
  _usage
  exit
fi

_xcodeprojfile=$(ls | grep xcodeproj)
name=${_xcodeprojfile%.*}
config_file=$1
version=$2

ipaurl=$(_conf ".ipaurl")
title=$(_conf ".title")
bundle_id=$(_conf ".bundle_id")
scp_dest=$(_conf ".scp.dest")
scp_user=$(_conf ".scp.user")
scp_identity_file=$(_conf ".scp.identity_file")

dest_dirname="${name}_${version}"
plist="${name}.plist"
ipa_file="${name}.ipa"

echo "===> generate plist file for download"
cat << EOF > $plist
<?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>$ipaurl</string>
          </dict>
        </array>
        <key>metadata</key>
        <dict>
          <key>bundle-identifier</key>
          <string>$bundle_id</string>
          <key>kind</key>
          <string>software</string>
          <key>title</key>
          <string>$title</string>
        </dict>
      </dict>
    </array>
  </dict>
</plist>
EOF

echo "===> create ipa file"
ipa build
rm ${name}.app.dSYM.zip

echo "===> create tmp dir and mv ipa & plist"
mkdir $dest_dirname
mv $ipa_file ${dest_dirname}/
mv $plist ${dest_dirname}/

echo "===> scp to remote host"
scp -r -i $scp_identity_file $dest_dirname $scp_user@$scp_dest

echo "===> rm tmp dir"
rm -r $dest_dirname

以上是关于sh plistとipaをつくってscpで上传するやつ的主要内容,如果未能解决你的问题,请参考以下文章

markdown 轨道を开発する环境を何度でもさくっと用意できるように

csharp Edge.js(https://github.com/tjanczuk/edge)をつかってC#でNode.jsのHTTPサーバをホストするサンプルコード.nugetでEdge.jsをイ

ruby つくって学ぶプログラミング言语Ruby中的方案

ruby つくって学ぶプログラミング言语Ruby中的方案

ruby つくって学ぶプログラミング言语Ruby中的方案

csharp モジュラス10 /ウェイト3のチェックデジットを取得する。てきとーにつくったもの。