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

准备资源

替换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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 昨天实在是忙的昏天黑地,完全没时间发文 昨晚没睡好,但是今早却强行5点起床,不禁让我想到最近的一个梗 科比退役后,...
    温州的柯阅读 518评论 0 2
  • 生活就是五味汤, 酸甜苦辣加点咸。 生活就是摄象机, 喜怒哀乐加点愁。 生活就是多彩笔, 悲欢离合加点怨。 生活就...
    夕阳红十三妹阅读 475评论 6 24
  • 叶子的离去是风追求 还是树的不挽留 也许是它想要追求它想要的自由 不停留 明年 大树又会有新的嫩芽 风走了 叶子又...
    夜宇浩辰阅读 324评论 0 10
  • 良好实践,这次主要挑了一些开发PHP应用时应该运用上的良好实践进行详细记录,特别是良好实践部分中密码和流两个点。关...
    梅先森森森森森森阅读 486评论 0 1

友情链接更多精彩内容