xcode測試版使用不同id

前面做了自動打包并上傳蒲公英的腳本送爸,
這次做了一些處理铛嘱,讓手機(jī)上可以同時安裝原版和測試版的
做完以后可以:開發(fā)過程一鍵自動打包ipa包上傳到蒲公英,測試人員可以安裝一個appstore版本安裝一個測試版袭厂,上傳appstore手動打包上傳
后面在代碼里面配置一下Debug的IP測試環(huán)境墨吓,DevRelease的IP是UAT環(huán)境,然后release的IP自動改成正式環(huán)境的纹磺。這樣打包運行就不用管了

本來只有Debug和release的現(xiàn)在把release復(fù)制一份出來DevRelease帖烘,專門用來打包
先增加一個環(huán)境,我是復(fù)制的release橄杨,因為打包用release比較好


增加環(huán)境

xcode14使用老項目出現(xiàn)顯示的名稱無法修改參考這個
https://juejin.cn/post/7197361396219772983
我這里處理是方案一修改成 $(INFOPLIST_KEY_CFBundleDisplayName)

image.png

在這個地方修改秘症,讓app顯示的可以區(qū)分。
app顯示名稱

也可以不同環(huán)境使用不同的圖標(biāo)式矫,在build settings里搜索asset catalog,然后找到 Asset Catalog App Icon Set Name 設(shè)置對應(yīng)icon的圖片名稱


image.png

直接跑使用Debug乡摹,包名是dev,DevRelease是打包成ipa的給別人安裝的使用Release但是包名也是dev采转,
Release就用來打包上傳appstore的包名沒有dev


不同包名

完成以后重新執(zhí)行pod install聪廉,可以看到pod自動增加了新的環(huán)境


image.png


#!/usr/bin/env bash

echo "how to use."
echo "===================="
echo "默認(rèn)使用 DevRelease"
echo "./ipa.sh"
echo "===================="
echo "build for release"
echo "./ipa.sh --release"
echo "===================="
echo "參數(shù)1:release,debug,參數(shù)2:appStore,adHoc"
echo "./ipa.sh --release --app-store"
echo "===================="
sleep 1
#
#
#
#
#
#

# 使用方法:
# step1: 將該腳本放在工程的根目錄下(跟.xcworkspace文件or .xcodeproj文件同目錄)
# step2: 根據(jù)情況修改下面的參數(shù)
# step3: 打開終端,執(zhí)行腳本故慈。(輸入sh 板熊,然后將腳本文件拉到終端,會生成文件路徑察绷,然后enter就可)

# =============項目自定義部分(自定義好下列參數(shù)后再執(zhí)行該腳本)=================== #

# 是否編譯工作空間 (例:若是用Cocopods管理的.xcworkspace項目,賦值true;用Xcode默認(rèn)創(chuàng)建的.xcodeproj,賦值false)

echo $1 $2

configuration_type=$1
method_type=$2

if [ "$configuration_type" == "--release" ]; then
build_configuration="Release"
echo "==編譯Release=="
elif [ "$configuration_type" == "--Debug" ]; then
build_configuration="Debug"
echo "==編譯Debug=="
else
build_configuration="DevRelease"
echo "*****==編譯DebugDev=="
fi


if [ "$method_type" == "--app-store" ]; then
method="app-store"
echo "==打包app-store=="
elif [ "$method_type" == "--ad-hoc" ]; then
method="ad-hoc"
echo "==打包ad-hoc=="
else
method="development"
echo "*****==打包development=="
fi


# 1111--指定要打包編譯的方式 : Release,Debug干签。一般用Release。必填輸入第二個參數(shù)
#build_configuration="Release"
# 2222--method拆撼,打包的方式筒严。方式分別為 development, ad-hoc, app-store, enterprise 丹泉。必填
#method="development"


is_workspace="true"

# .xcworkspace的名字情萤,如果is_workspace為true鸭蛙,則必須填。否則可不填
workspace_name="Luxxxx"

# .xcodeproj的名字筋岛,如果is_workspace為false娶视,則必須填。否則可不填
project_name=""

# 指定項目的scheme名稱(也就是工程的target名稱)睁宰,必填
scheme_name="Luxxxx"


#compileBitcode選項沒有配置,默認(rèn)compileBitcode為YES,要設(shè)置成NO就可以了
compileBitcode="NO"


#  下面兩個參數(shù)只是在手動指定Pofile文件的時候用到肪获,如果使用Xcode自動管理Profile,直接留空就好
# (跟method對應(yīng)的)mobileprovision文件名,需要先雙擊安裝.mobileprovision文件.手動管理Profile時必填
mobileprovision_name=""

# 項目的bundleID柒傻,手動管理Profile時必填
bundle_identifier=""



# 蒲公英app key
api_key="xxx"


echo "--------------------腳本配置參數(shù)檢查--------------------"
echo "\0=====is_workspace=${is_workspace} "
echo "workspace_name=${workspace_name}"
echo "project_name=${project_name}"
echo "scheme_name=${scheme_name}"
echo "build_configuration=${build_configuration}"
echo "bundle_identifier=${bundle_identifier}"
echo "method=${method}"
echo "mobileprovision_name=${mobileprovision_name} \0====="

echo "--------------------xxx---------------------"
# =======================腳本的一些固定參數(shù)定義(無特殊情況不用修改)====================== #

# 獲取當(dāng)前腳本所在目錄
script_dir="$( cd "$( dirname "$0"  )" && pwd  )"
# 工程根目錄
project_dir=$script_dir
# 時間
DATE=`date '+%Y%m%d_%H%M%S'`
# 指定輸出導(dǎo)出文件夾路徑-寫到項目之外不然還要加入忽略白名單
#export_path="$project_dir/Package/$scheme_name-$DATE"
export_path="/Users/xxx電腦的user/Desktop/Package/$scheme_name-$DATE"
# 指定輸出歸檔文件路徑
export_archive_path="$export_path/$scheme_name.xcarchive"
# 指定輸出ipa文件夾路徑
export_ipa_path="$export_path"
# 指定輸出ipa名稱
#ipa_name="${scheme_name}_${DATE}"
ipa_name="Luxxxx"
# 指定導(dǎo)出ipa包需要用到的plist配置文件的路徑
export_options_plist_path="$project_dir/ExportOptions.plist"
echo "--------------------增加版本號-------------"
#獲取當(dāng)前版本號
get_build_version=`xcodebuild -showBuildSettings  -target $scheme_name | grep CURRENT_PROJECT_VERSION | tr -d 'CURRENT_PROJECT_VERSION = '`
old_build_version=$get_build_version
echo "old_build_version = $old_build_version"

#版本號增加
agvtool new-version $(($old_build_version+1))

#輸出新版本號
#get_current_build_veresion=`xcodebuild -showBuildSettings  -target $scheme_name | grep CURRENT_PROJECT_VERSION | tr -d 'CURRENT_PROJECT_VERSION = '`
#current_build_veresion=$get_current_build_veresion
#echo "current_build_veresion = $current_build_veresion"

echo "--------------------腳本固定參數(shù)檢查--------------------"
echo "\0=====;1mproject_dir=${project_dir}"
echo "DATE=${DATE}"
echo "export_path=${export_path}"
echo "export_archive_path=${export_archive_path}"
echo "export_ipa_path=${export_ipa_path}"
echo "export_options_plist_path=${export_options_plist_path}"
echo "ipa_name=${ipa_name} \0====="

# =======================自動打包部分(無特殊情況不用修改)====================== #

echo "------------------------------------------------------"
echo "\0=====開始構(gòu)建項目  \0====="
# 進(jìn)入項目工程目錄
cd ${project_dir}

# 指定輸出文件目錄不存在則創(chuàng)建
if [ -d "$export_path" ] ; then
    echo $export_path
else
    mkdir -pv $export_path
fi

# 判斷編譯的項目類型是workspace還是project
if $is_workspace ; then
# 編譯前清理工程
xcodebuild clean -workspace ${workspace_name}.xcworkspace \
                 -scheme ${scheme_name} \
                 -configuration ${build_configuration}

xcodebuild archive -workspace ${workspace_name}.xcworkspace \
                   -scheme ${scheme_name} \
                   -configuration ${build_configuration} \
                   -archivePath ${export_archive_path}
else
# 編譯前清理工程
xcodebuild clean -project ${project_name}.xcodeproj \
                 -scheme ${scheme_name} \
                 -configuration ${build_configuration}

xcodebuild archive -project ${project_name}.xcodeproj \
                   -scheme ${scheme_name} \
                   -configuration ${build_configuration} \
                   -archivePath ${export_archive_path}
fi

#  檢查是否構(gòu)建成功
#  xcarchive 實際是一個文件夾不是一個文件所以使用 -d 判斷
if [ -d "$export_archive_path" ] ; then
    echo "\0=====項目構(gòu)建成功 ?? ?? ??  \0====="
else
    echo "\0=====項目構(gòu)建失敗 ?? ?? ??  \0====="
    exit 1
fi
echo "------------------------------------------------------"

echo "\0====開始導(dǎo)出ipa文件 \0====="

# 檢查是否有dSYM文件
dSYM_path="$export_archive_path/dSYMs/$scheme_name.app.dSYM"
export_dSYM_path="$export_path/$scheme_name.app.dSYM"
if [ -d $dSYM_path ]; then
cp -r $dSYM_path $export_dSYM_path
else
    echo "no dSYM file"
    echo "dSYM_path=${dSYM_path}"
fi

# 先刪除export_options_plist文件
if [ -f "$export_options_plist_path" ] ; then
    #echo "${export_options_plist_path}文件存在孝赫,進(jìn)行刪除"
    rm -f $export_options_plist_path
fi
# 根據(jù)參數(shù)生成export_options_plist文件
/usr/libexec/PlistBuddy -c  "Add :compileBitcode bool ${compileBitcode}"  $export_options_plist_path
/usr/libexec/PlistBuddy -c  "Add :method string ${method}"  $export_options_plist_path
/usr/libexec/PlistBuddy -c  "Add :provisioningProfiles:"  $export_options_plist_path
/usr/libexec/PlistBuddy -c  "Add :provisioningProfiles:${bundle_identifier} string ${mobileprovision_name}"  $export_options_plist_path


xcodebuild  -exportArchive \
            -archivePath ${export_archive_path} \
            -exportPath ${export_ipa_path} \
            -exportOptionsPlist ${export_options_plist_path} \
            -allowProvisioningUpdates

# 檢查ipa文件是否存在
if [ -f "$export_ipa_path/$scheme_name.ipa" ] ; then
    echo "\0=====exportArchive ipa包成功,準(zhǔn)備進(jìn)行重命名\0====="
else
    echo "在目錄:${export_ipa_path}/${ipa_name}.ipa 不存在999"
    echo "\0=====exportArchive ipa包失敗 ?? ?? ??     \0====="
    exit 1
fi

# 修改ipa文件名稱
mv $export_ipa_path/$scheme_name.ipa $export_ipa_path/$ipa_name.ipa

# 檢查文件是否存在
if [ -f "$export_ipa_path/$ipa_name.ipa" ] ; then
    echo "\0=====導(dǎo)出 ${ipa_name}.ipa 包成功 ??  ??  ??   \0====="
#    open $export_path
else
    echo "在目錄:${export_ipa_path}/${ipa_name}.ipa 不存在xx1"
    echo "\0=====導(dǎo)出 ${ipa_name}.ipa 包失敗 ?? ?? ??     \0====="
    exit 1
fi

# 刪除export_options_plist文件(中間文件)
if [ -f "$export_options_plist_path" ] ; then
    #echo "${export_options_plist_path}文件存在,準(zhǔn)備刪除"
    rm -f $export_options_plist_path
fi

# 輸出打包總用時
echo "\0=====使用AutoPackageScript打包總用時: ${SECONDS}s \0====="

#上傳ipa到蒲公英 我自己加的
if [ -f "${export_ipa_path}/${ipa_name}.ipa" ]
then
    echo '開始上傳ipa/apk到蒲公英'
    curl -F "file=@${export_ipa_path}/${ipa_name}.ipa" -F "_api_key=${api_key}" 'http://www.pgyer.com/apiv2/app/upload'
else
    echo "在目錄:${export_ipa_path}/${ipa_name}.ipa 不存在"
fi

mv "${export_ipa_path}/${ipa_name}.ipa" "${export_ipa_path}/${ipa_name}-${method}-${build_configuration}.ipa"
echo "\0\0"
echo "\0====完成\0===== ??  ??  ??"
exit 0


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末红符,一起剝皮案震驚了整個濱河市青柄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌预侯,老刑警劉巖致开,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異萎馅,居然都是意外死亡双戳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門糜芳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來飒货,“玉大人,你說我怎么就攤上這事峭竣√粮ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵邪驮,是天一觀的道長莫辨。 經(jīng)常有香客問我,道長毅访,這世上最難降的妖魔是什么沮榜? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮喻粹,結(jié)果婚禮上蟆融,老公的妹妹穿的比我還像新娘。我一直安慰自己守呜,他們只是感情好型酥,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布山憨。 她就那樣靜靜地躺著,像睡著了一般弥喉。 火紅的嫁衣襯著肌膚如雪郁竟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天由境,我揣著相機(jī)與錄音棚亩,去河邊找鬼。 笑死虏杰,一個胖子當(dāng)著我的面吹牛讥蟆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纺阔,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瘸彤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了笛钝?” 一聲冷哼從身側(cè)響起质况,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤惜索,失蹤者是張志新(化名)和其女友劉穎仆救,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窒盐,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡啃奴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年潭陪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片最蕾。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡依溯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瘟则,到底是詐尸還是另有隱情黎炉,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布醋拧,位于F島的核電站慷嗜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏丹壕。R本人自食惡果不足惜庆械,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望菌赖。 院中可真熱鬧缭乘,春花似錦、人聲如沸琉用。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奴紧,卻和暖如春特姐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绰寞。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工到逊, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人滤钱。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像脑题,于是被迫代替她去往敵國和親件缸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容