準(zhǔn)備資源
替換xcode資源文件腳本
#!/bin/bash
#只需要在終端中輸入 $ sh test.sh + 配置文件地址. 即可打包成ipa
#配置文件目錄結(jié)構(gòu)
# |-圖標(biāo) |-xxx |-LaunchImage.launchimage
|-AppIcon.appiconset
# |-桌面路徑 |-package-icon
# |-ExportOptions.plist
# |-archive
#工程名
project_name='zsmDemo'
#工程地址
project_path='/Users/zsm/Desktop/zsmDemo'
#圖標(biāo)啟動圖等存放位置 里面是app名字的文件夾 文件夾里放圖標(biāo) 啟動圖 和額外替換的圖
#注意工程中的icon 使用Assets.xcassets/AppIcon.appiconset
#launch使用Assets.xcassets/LaunchImage.launchimage
resource_path='/Users/zsm/Desktop/package-icon/圖標(biāo)'
#ipa生成路徑
#在此新建一個空文件夾archive
output_path='/Users/zsm/Desktop/package-icon'
#xcarchive臨時存放路徑
archive_path="$output_path/archive"
#app的資源文件夾名
appNames='幣承兌'
appDisplayName="幣承兌"
bundleId="com.spark.zsmDemo520"
#項(xiàng)目/project.pbxproj 文件中的Debug和Release 對應(yīng)的Object
objectsDebug="6B19D4F0219E70290088AF3C"
objectsRelease="6B19D4EF219E70290088AF3C"
#版本號
appVersion="1.9.9"
#build號
bundleVersion="9"
#ExportOptions 用xcode打包一次可生成
#要替換的icons素材 注意Icons 和 lanchs數(shù)量一致 LaunchImage.launchimage AppIcon.appiconset
icons=(icon-50@2x.png icon-57@2x.png icon-29.png icon-20-ipad.png icon-57.png icon-76.png icon-29-ipad.png icon-40.png icon-83.5@2x.png icon-50.png icon-29@2x.png icon-72@2x.png icon-76@2x.png icon-20@2x.png icon-20@3x.png icon-29@3x.png icon-72.png icon-29@2x-ipad.png icon-20@2x-ipad.png icon-40@2x.png icon-40@3x.png icon-60@2x.png icon-60@3x.png icon-1024.png)
launchs=(Default~iphone.png Default@2x~iphone.png Default-736h.png Default-667h.png Default-568h@2x~iphone.png Default-2688h.png Default-2436h.png Default-1792h.png Default-No-StatusBar@2x~ipad.png Default-Portrait@2x~ipad.png Default-No-StatusBar~ipad.png Default-Portrait~ipad.png)
#素材文件夾中額外要替換的資源名
changeNames=(y1.png y2.png)
#要替換的工程中的資源路徑
changeNamesInProj=(Assets.xcassets/w60.imageset/w60@3x.png Assets.xcassets/Logo/60.imageset/60@2x.png)
packaging(){
#***********配置項(xiàng)目
MWConfiguration=Debug
#日期
MWDate=`date +%Y%m%d_%H%M`
#pod 相關(guān)配置
#更新pod配置
# pod install
#構(gòu)建
xcodebuild archive \
-workspace "$project_path/$project_name.xcworkspace" \
-scheme "$project_name" \
-configuration "$MWConfiguration" \
-archivePath "$archive_path/$project_name" \
clean \
build \
-derivedDataPath "$MWBuildTempDir"
#生成ipa
xcodebuild -exportArchive -exportOptionsPlist "$output_path/ExportOptions.plist" -archivePath "$archive_path/$project_name.xcarchive" -exportPath $output_path -allowProvisioningUpdates
}
#---------------------------------------------------------------------------------------------------------------------------------
prepare(){
plist_path="${project_path}/${project_name}/Info.plist"
projectPb_path="${project_path}/$project_name.xcodeproj/project.pbxproj"
echo $plist_path
echo $projectPb_path
#替換displayName以及bundleId
sed -i '' "/CFBundleDisplayName/{n;s/<string>.*<\/string>/<string>$appDisplayName<\/string>/;}" $plist_path
sed -i '' "/CFBundleName/{n;s/<string>.*<\/string>/<string>$appDisplayName<\/string>/;}" $plist_path
sed -i '' "/CFBundleIdentifier/{n;s/<string>.*<\/string>/<string>$bundleId<\/string>/;}" $plist_path
sed -i '' "/CFBundleShortVersionString/{n;s/<string>.*<\/string>/<string>$appVersion<\/string>/;}" $plist_path
sed -i '' "/CFBundleVersion/{n;s/<string>.*<\/string>/<string>$bundleVersion<\/string>/;}" $plist_path
/usr/libexec/PlistBuddy -c "Set:objects:$objectsDebug:buildSettings:PRODUCT_BUNDLE_IDENTIFIER $bundleId" $projectPb_path #7019629A20D34CC500A35200
/usr/libexec/PlistBuddy -c "Set:objects:$objectsRelease:buildSettings:PRODUCT_BUNDLE_IDENTIFIER $bundleId" $projectPb_path
echo "9999999999"
m=0
while [[ m -lt ${#icons[@]} ]]; do
icon=${icons[m]}
launch=${launchs[m]}
echo "${icon}"
echo "${launch}"
let m++
#替換圖標(biāo)、啟動圖
cp "${resource_path}/${appNames}/AppIcon.appiconset/${icon}" "${project_path}/${project_name}/Assets.xcassets/AppIcon.appiconset/${icon}"
cp "${resource_path}/${appNames}/LaunchImage.launchimage/${launch}" "${project_path}/${project_name}/Assets.xcassets/LaunchImage.launchimage/${launch}"
done
n=0
while [[ n -lt ${#changeNames[@]} ]]; do
changeName=${changeNames[n]}
changeNameInProj=${changeNamesInProj[n]}
let n++
#替換app內(nèi)用到的圖標(biāo) 和 首頁那個圖
cp "${resource_path}/${appNames}/${changeName}" "${project_path}/${project_name}/${changeNameInProj}"
done
}
group(){
#替換資源
prepare
#打包
packaging
#打開導(dǎo)出IPA路徑
open $output_path
}
#---------------------------------------------------------------------------------------------------------------------------------
#打包
group
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。