最近读到一篇文章(
http://www.merowing.info/2013/03/overlaying-application-version-on-top-of-your-icon/)介绍了一种非常简单的,把版本信息显示到iOS app的icon上的方式, 有了这个技能,在测试多版本的时候,测试人员可以直接从icon上看到当前测试的版本,无需在到HockeyApp或者TestFlight中去看哪些机器使用的哪个版本,可以提升效率。
下面是我如何Get这个技能的:
首先,获取想展示到图标上的信息,在我的app中,我想展示version,branch,commit信息,即当前测试的App是哪个分支上得哪个版本,在哪次提交之后build的. 这些信息最后是通过shell脚本弄上去的,因此,只要shell脚本能读取到这些信息就成。对于iOS App来说,Version信息来源于项目的.plist文件,在Mac上提供了PlistBuddy工具来帮助开发者提取plist中的所有信息:
version = `/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "骚窝对对碰-info.plist"` #1.0
至于branch和commit信息则是根据Version control工具来定的,我使用的是git:
branch=`git rev-parse --abbrev-ref HEAD`
commit=`git rev-parse --short HEAD`
接着,有了想写到icon的信息,接下来是如何写到icon上,这儿的工具是ImageMagick和ghostscript,ImageMagick为在命令行下操作图片提供了很多的功能,而ghostscript则是为了在icon上写的字体好看一点。在Mac下有了homebrew安装什么都很方便:
brew install imagemagick
brew install ghostscript
安装好后,通过ImageMagicK的convert功能把文字写到图片上,示例:在Icon.png上,创建一个背景色为‘#0008’的,长144,高40的矩形,然后用白色字体把把“test master 56789998”居中写到矩形中。
convert -background '#0008' -fill white -gravity center -size 144x40 caption:"test master 56789998" ./Icon.png +swap -gravity south -composite ./convert.png
转换后的前后对比如下:
最后,有了要写的信息和如何写的方式,接下来,就是在Xcode中完成配置,把该功能加入到iOS App的构建过程中。
1.把所有的Icon文件改为*_base.png, 因为最后的Icon文件是由脚本生成,因此需把当前Icon改名以防冲突。
2.在Target的Build Phases中添加一个Run Script的Build Phase, 怎么做:http://www.runscriptbuildphase.com/
3.把前面的图片处理过程,添加到Run Script中:
commit=`git rev-parse --short HEAD`
branch=`git rev-parse --abbrev-ref HEAD`
version=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_FILE}"`
function processIcon() {
export PATH=$PATH:/usr/local/bin
base_file=$1
base_path=`find ${SRCROOT} -name $base_file`
if [[ ! -f ${base_path} || -z ${base_path} ]]; then
return;
fi
target_file=`echo $base_file | sed "s/_base//"`
target_path="${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/${target_file}"
if [ $CONFIGURATION = "Release" ]; then
cp ${base_file} $target_path
return
fi
width=`identify -format %w ${base_path}`
convert -background '#0008' -fill white -gravity center -size ${width}x40\
caption:"${version} ${branch} ${commit}"\
${base_path} +swap -gravity south -composite ${target_path}
}
processIcon "Icon_base.png"
processIcon "Icon@2x_base.png"
processIcon "Icon-72_base.png"
processIcon "Icon-72@2x_base.png"
最后,在我的Simiulatro上得到的效果:
- 大小: 282.5 KB
- 大小: 51.8 KB
- 大小: 33 KB
- 大小: 33 KB
分享到:
相关推荐
这个压缩包资源,"ios-iOS App图标版本化.zip",包含了有关如何在iOS应用中实现图标版本化的相关信息,具体可能包括代码示例、教程文档等。通过提供的GitHub地址(https://github.com/MrLujh/AppIconVersion),我们...
适用于iOS系统的App图标输出模板,只需要制作一张 512*512尺寸的图标,借助文件夹中的psd文件并导入附带的ps脚本即可完成多种尺寸的图标输出,一步到位 省去制作多个不同尺寸图标的麻烦。 操作步骤 1 在ps中导入...
iOS App图标和启动画面尺寸 注意:iOS所有图标的圆角效果由系统生成,给到的图标本身不能是圆角的。 1. 桌面图标 (app icon) for iPhone6 plus(@3x) : 180 x 180 for iPhone 6/5s/5/4s/4(@2x) : 120 x ...
在iOS开发中,实现动态更换App图标是一项独特的技术挑战,它可以为用户带来新颖有趣的体验,正如描述中提到的七夕节程序员的创意一样。这里我们将深入探讨如何在iOS应用中实现这一功能,以及相关的技术要点。 首先...
iOS 11引入了AppIcon资产,允许开发者在一个地方管理所有必要的图标尺寸。此外,iOS图标通常包含一个前景元素和一个背景,或者一个完整的填充形状,以适应深色和浅色主题。 压缩包内的“icon”文件包含了上述各种...
综上所述,Android和iOS的App图标设计需要遵循各自的平台规范,以提供良好的用户体验。同时,一套全面的天气图标集合可以增强天气应用的可用性和吸引力。在开发过程中,设计师和开发者需要紧密合作,确保图标既美观...
在iOS应用开发中,"上下黑边"问题通常是指在某些设备上,应用程序的界面未能充分利用屏幕空间,导致顶部和/或底部出现黑色区域。这个问题可能由多种原因引起,包括不正确的视图设置、适配不同尺寸的屏幕、或者与安全...
在iOS和macOS上,苹果公司对图标尺寸有严格的规定,不同的设备和操作系统版本可能需要不同大小的图标,这使得手动创建和管理所有必要的图标变得复杂。 Swift开发中的AppIcon生成器简化了这一过程。它允许开发者提供...
### IOS APP发布流程详解 随着移动互联网的普及与智能手机的广泛应用,越来越多的企业和个人投身于iOS应用的开发。本文旨在为初次接触iOS应用发布的开发者提供一份详细的发布指南,内容基于实践检验,涵盖从登录...
一套完整的iOS图标通常包括AppIcon(应用主图标)、SpotlightIcon(搜索结果显示的图标)、SettingsIcon(设置中显示的图标)等多种类型,以满足应用在各个界面下的显示需求。这些图标通常需要按照苹果官方的尺寸...
在iOS平台上,应用图标是用户与应用程序交互的第一界面,它们代表了应用的视觉识别和品牌形象。本资源包含43个常见的iOS应用图标,包括QQ、微信、微博等流行的应用,这些图标均按照标准尺寸100x100像素设计,以确保...
在iOS应用开发中,夜间模式是一项重要的功能,它允许用户...以上就是关于“iOSApp夜间模式”和RNThemeManager的相关知识点。通过熟练掌握这些内容,开发者可以轻松地在React Native应用中实现夜间模式,提升用户体验。
Xcode随着iOS系统的更新,不断引入新的特性和功能,其中包括在iOS 10.3及更高版本中支持动态修改APP图标的特性。这个功能使得开发者能够为用户提供更个性化的体验,比如根据节日、活动或者用户状态来改变应用图标。...
设计完成后,应确保图标在不同设备和不同尺寸上都能正确显示,包括iPhone、iPad以及不同版本的iOS。这可以通过模拟器或真机进行测试。 综上所述,“ios7图标设计规范”是为了在新的操作系统环境下,为用户提供更...
此外,为了确保在不同屏幕密度(如1x, 2x, 3x)的设备上图标显示正常,你还需要提供不同尺寸的图标。24x24像素的图标是针对1x设备的,对于2x和3x设备,你需要提供48x48和72x72像素的版本。虽然在Photoshop中直接调整...
在实际的APP开发中,这些PNG图标会被整合到应用资源文件中,通过编程语言(如Java或Swift)引用并显示在相应的界面上。开发者需要确保在不同状态(如选中、禁用等)下,图标能够正确地显示和交互。 总之,"图标 PNG...
在iOS 5中,我们使用图片来设定启动画面,而在更现代的iOS版本中(如iOS 8及以上),推荐使用Launch storyboard。 2. 添加启动图片 - 为不同的设备和方向准备不同尺寸的启动图片。在iOS 5时期,iPhone 3.5英寸、4...
在iOS系统中,应用图标需要遵循特定的尺寸和分辨率,以便在不同的设备和操作系统版本上看起来清晰美观。例如,需要为iPhone、iPad、App Store展示以及设置屏幕等不同场景准备不同大小的图标。过去,手动创建这些图标...
在这个过程中,"绿标"通常指的是应用图标上的绿色安全标识,表示应用是经过安全验证的,提高了用户的信任度。 这个压缩包包含的文件如下: 1. **华创源码使用说明.html**:这可能是详细解释如何使用这套免签封装...
iOS 应用在运行状态上的差异直接影响其行为和性能。当应用处于前台时,它可以充分利用系统资源进行高效的用户交互;而在后台时,则受到严格的资源限制。理解这两种状态下的行为差异有助于开发者优化应用,确保无论在...