iOS Xcode資源 bundleID App名稱替換腳本

準(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 昨天實(shí)在是忙的昏天黑地,完全沒時間發(fā)文 昨晚沒睡好,但是今早卻強(qiáng)行5點(diǎn)起床,不禁讓我想到最近的一個梗 科比退役后,...
    溫州的柯閱讀 518評論 0 2
  • 生活就是五味湯, 酸甜苦辣加點(diǎn)咸。 生活就是攝象機(jī), 喜怒哀樂加點(diǎn)愁。 生活就是多彩筆, 悲歡離合加點(diǎn)怨。 生活就...
    夕陽紅十三妹閱讀 475評論 6 24
  • 葉子的離去是風(fēng)追求 還是樹的不挽留 也許是它想要追求它想要的自由 不停留 明年 大樹又會有新的嫩芽 風(fēng)走了 葉子又...
    夜宇浩辰閱讀 323評論 0 10
  • 良好實(shí)踐,這次主要挑了一些開發(fā)PHP應(yīng)用時應(yīng)該運(yùn)用上的良好實(shí)踐進(jìn)行詳細(xì)記錄,特別是良好實(shí)踐部分中密碼和流兩個點(diǎn)。關(guān)...
    梅先森森森森森森閱讀 485評論 0 1

友情鏈接更多精彩內(nèi)容