美文网首页
iOS Xcode资源 bundleID App名称替换脚本

iOS Xcode资源 bundleID App名称替换脚本

作者: 时光浅影 | 来源:发表于2019-12-18 09:46 被阅读0次

准备资源

替换xcode资源文件脚本

 #!/bin/bash
#只需要在终端中输入 $ sh test.sh + 配置文件地址. 即可打包成ipa

#配置文件目录结构
#                              |-图标  |-xxx |-LaunchImage.launchimage
                                                               |-AppIcon.appiconset
# |-桌面路径 |-package-icon
#                              |-ExportOptions.plist
#                              |-archive
#工程名
project_name='zsmDemo'
#工程地址
project_path='/Users/zsm/Desktop/zsmDemo'
#图标启动图等存放位置 里面是app名字的文件夹 文件夹里放图标 启动图 和额外替换的图
#注意工程中的icon 使用Assets.xcassets/AppIcon.appiconset
#launch使用Assets.xcassets/LaunchImage.launchimage
resource_path='/Users/zsm/Desktop/package-icon/图标'
#ipa生成路径
#在此新建一个空文件夹archive
output_path='/Users/zsm/Desktop/package-icon'
#xcarchive临时存放路径
archive_path="$output_path/archive"

#app的资源文件夹名
appNames='币承兑'

appDisplayName="币承兑"
bundleId="com.spark.zsmDemo520"
#项目/project.pbxproj 文件中的Debug和Release 对应的Object
objectsDebug="6B19D4F0219E70290088AF3C"
objectsRelease="6B19D4EF219E70290088AF3C"
#版本号
appVersion="1.9.9"
#build号
bundleVersion="9"

#ExportOptions 用xcode打包一次可生成

#要替换的icons素材 注意Icons 和 lanchs数量一致 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(){

#***********配置项目
MWConfiguration=Debug
#日期
MWDate=`date +%Y%m%d_%H%M`

#pod 相关配置

#更新pod配置
# pod install

#构建
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++

    #替换图标、启动图
    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内用到的图标 和 首页那个图
cp "${resource_path}/${appNames}/${changeName}" "${project_path}/${project_name}/${changeNameInProj}"

done

}


group(){
    #替换资源
     prepare
     #打包
     packaging
     #打开导出IPA路径
     open $output_path

}
#---------------------------------------------------------------------------------------------------------------------------------

#打包
group

相关文章

网友评论

      本文标题:iOS Xcode资源 bundleID App名称替换脚本

      本文链接:https://www.haomeiwen.com/subject/lfpynctx.html