准备资源
替换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
网友评论