APPの開発プロセスは、多くの場合、ネットワーク環境または構成を複数のスイッチングでは、APP異なる構成のために、時々、APPとコードの異なるセットを生成するために、簡単な構成を通過する必要があります。手動で時間がかかり、エラーが発生しやすい設定。ここでAPPプロジェクト異なる構成を生成するために、スクリプティングツールです。
1.需要分析
設定の作品では、我々は、事前にどの設定項目を知っておく必要があります。
- APPは、アイコンファイルや他のリソースを開始します。
- APP名、バージョン番号、bundleID。
- APPは、マイクロチャネルAPPKEY、スキームに関連します。
- ネットワーク環境、コードの交換の一部。
- プロファイルの変更をプロビジョニング
設定するために上記の分析項目は、我々はこれらの設定項目はに分けることができます見つけることができる三つのカテゴリー、すなわち、:
- リソースファイルを置き換え
- plistのフィールド変更
- コードの一部あるいは
需要を満たす以上のことを達成するためにどのように次のシェルスクリプトを実行します。
2.スクリプトのデザイン&実現
2.1スクリプトの作成
まず、シェル・スクリプト・ファイルを作成し、コマンドラインツールを入力し、touch xxx.sh
:あなたは、シェルスクリプトは、名前のシェルスクリプトファイルを作成することができますprojectDeploy.sh
。
あなたが配置されているスクリプトファイルのパスに切り替えるためのコマンドラインツールでスクリプトを実行すると、タイプ:sh projectDeploy.sh
コマンドスクリプトを実行することができます。
2.2スクリプトのパラメータの受け渡し
私たちは、ここでの唯一の方法で渡されたシェルスクリプトパラメータの様々な具体的な構成を必要と足を伝えるためにパラメータを渡す必要があります。
while getopts ":e:s:" opt
do
case $opt in
e)
environment=$OPTARG;;
s)
supplier=$OPTARG;;
?)
echo "请输入正确的参数"
exit 1;;
esac
done
2つのグローバル変数は、本明細書に定義されるenvironment
とsupplier
、スクリプトを呼び出すときに、コマンドを入力sh projectDeploy.sh -e prd -s xxx
給付パラメータを伝達され、変数に対応する特定の値を指定し、パラメータの順序が維持される必要はありません。
2.3リソースを交換
シェルスクリプトを置き換えるために、ここで使用するリソースは、copy
コマンド:
cp source_file_directory destination_directory
。
あなたが指定した場所にリソースを交換したいファイルをコピーし、時にはパスのファイルをクリーンアップ推進する必要があるから、操作をコピーします。
rm -rf destination_directory
あなたはファイルが存在すると同じ名前を持っている場合、コピー操作は、元のファイルを上書きします。
この操作ではなく、描画を開始、デスクトップアイコン、画像、リソース、SDK、コードファイルや買い替え需要などの他の文書に使用することができます。
2.4 plistのフィールド変更
APP桌面名称
、版本号
、bundleID
、scheme
そしてそう置き換えられる値が必要PLISTに
我々はMAC自身のplistファイル編集ツールを使用してPlistBuddy
、保守plistファイルを達成するために、
次のようにツールパスがアクセスします。/usr/libexec/PlistBuddy
具体的なコマンドは次のとおりです。
/usr/libexec/PlistBuddy -c "set CFBundleIdentifier com.xxx.xxx" ${project_infoplist_path}
/usr/libexec/PlistBuddy -c "set CFBundleShortVersionString ${appVersion}" ${project_infoplist_path}
/usr/libexec/PlistBuddy -c "set CFBundleDisplayName xxx" ${project_infoplist_path}
価値体系を変更します。
配列要素のデータ構造方式は辞書であってもよいので、辞書のキーに対応する値がアレイであってもよく、データ構造および位置の値を変更することが事前に知る必要がある、使用のplistツールキーに対応する指定された辞書は、アレイは、対応します標準:
/usr/libexec/PlistBuddy -c "set CFBundleURLTypes:0:CFBundleURLSchemes:0 xxx.xxx.xxx" ${project_infoplist_path}
なお、上記のコマンドを取ることであることを意味しCFBundleURLTypes
、配列Xの最初の要素をXとし、次のテイクCFBundleURLSchemes
配列Yの最初の要素、及びY更新値xxx.xxx.xxx
。
プロファイルをプロビジョニング交換用として、あなただけのように、行くためにパッケージ化されたスクリプトでそれを指定する必要がありproject.pbxproj
、いくつかの設定ファイル、あなたはまた、次のセクションを参照してください、2.5を構成するための方法を使用することができます。
コードの交換の2.5部
あなたには、いくつかの文字のコードを変更、またはバッチは、変数名を変更する必要がある場合は、ここでは使用sed
コマンドを使用します。
ここでは伝えることsed
が、他の特別なニーズは、ある他の用途のsedコマンドを見つけることができるならば、usageコマンドを:
sed -i '' 's/^\#define XXX_XX_URL.*$/\#define XXX_XX_URL @\"www.junziboxue.com\"/g' ${configureFile}
このコマンドは、すべての一致手段#define XXX_XX_URL
次いで、マクロ、および置換#define XXX_XX_URL @"www.junziboxue.com"
行全体が交換されます。一部の特殊文字を必要としているシェルコマンドは、エスケープここに注意を払う必要があります。
^\#define XXX_XX_URL.*$
すべて表現するために、正規表現で#define XXX_XX_URL
最初から文字を、そして/g
世界的な交換を表します。
他には、特定のSEDは、お問い合わせを所有することができます使用しています。
3概要
上記の方法の習得では、我々は基本的に任意の構成コードは、プロジェクトのために、APPの基本的な構成の一部を変更することができます。
:スクリプトがこのような状況の非常に肥大化した顔で引き起こす可能性が多くの項目を設定したい場合は、我々は、スクリプトの構造の設計を見る必要があり
、我々は分社構成され、その後、設定を実行し、その関数に渡すために特定の機能を設計することができます項目特定の構成を指定するパラメータ。
または構成項目は、予め書き込まれ、その後、関数はそれを読むのにかかるましょう。