如何打包生成App的两个不同名字,不同图标
来源:互联网 发布:淘宝网店怎么上传图片 编辑:程序博客网 时间:2024/04/28 04:45
iOS系统区分两个App是否相同的根据是App的Bundle ID是否相同,在安装一个程序时,系统是根据Bundle ID来判断是全新安装还是升级。那想在一个系统上安装一个App的两个不同版本,其实是需要两个不同的Bundle ID。就是说正式版一个Bundle ID,OTA版本/Debug版本用一个Bundle ID,假设AppStore版的ID是com.mycompany.myapp,OTA版的是com.mycompany.myapp-beta。同时为了直观的区分两个App,一般也会使用两套图标, 假设AppStore版的图标名称为Icon.png, Icon@2x.png, OTA版是Icon-beta.png, Icon-beta@2x.png. 那如果做到自动化的配置呢?答案在Build设置(Build Setting)里。
默认Xcode会提供2个Build配置(Build Configuration):Debug和Release,我们再加一个AppStore,这样来用:
Debug: 用来直接连机调试
Release:用于发布OTA的测试版
AppStore:用户提交到AppStore
下一步我们来在项目的Build Setting里添加两个自定义的设置,一个命名为BUNDLE_IDENTIFIER, 另一个命名为APP_ICON_NAME,如下图这样设置:
add_user_define_setting
这两个值分别定义个Bundle ID和图标的名称,下一步需要在Info.plist(名字格式是YourAppName-Info.plist)中修改BundleId 和Icon图标名称,把bundle identifier值设置为
${xxx}语法是预处理语法,都会被替换为xxx对应的真实值,在刚才的设置的基础上,在Debug的时候,实际的Bundle ID会替换为com.mycompany.myapp-beta,图标对应的为Icon-beta.png和Icon-beta@2x.png,Cooool
实际上我自己实践的时候,新建了一个叫myApp-AppStore的Schema,在不同的Schema里的Archive里是用不同的Build配置,myApp-AppStore的Schema里Archive的Build配置为”AppStore”,原来的myApp这个Schema的Build配置为Release,这样当我想发布OTA的时候,选择myApp-AppStore这个Schema,然后Archive,就能使用AppStore的自定义的配置来打包,用来提交AppStore;当选择myApp这个Schema的时候,Archive得到的是使用Release的自定义配置来打包的,用来上传到OTA测试。整个过程是自动化的,包括BundleId和图标文件的名称,如果你有别的类似的需要,也可以参考着来。
这篇文章编译自:How to Have Two Versions of the Same App on Your Device ,原作者Blog上还有其他精彩的文章等你发现。
- 如何打包生成App的两个不同名字,不同图标
- AndroidStudio多渠道打包,生成不同app
- 如何让两个不同的app共享数据
- 100分!!!如何实现两个不同手机不同APP之间的实时的数据传递
- Gradle配置打包成不同的app
- Ant自动打包(可动态修改包名、资源等)生成不同签名不同包名的APP
- Ant自动打包(可动态修改包名、资源等)生成不同签字不同包名的APP
- Ant自动打包(可动态修改包名、资源等)生成不同签名不同包名的APP
- Xcode6和Xcode5获取app名字及国际化的不同
- 如何搭配不同样式的图标
- 【iOS开发】iOS根据不同的语言,显示不同的APP名字--即:app名字多语言本地化
- 如何修改Android APP的图标和名字
- QTcpServer如何监听两个不同的端口
- 如何在一个设备上安装一个App的两个不同版本
- 一键打包出多个不同包名,不同应用名称和图标的APK
- 一键打包出多个不同包名,不同应用名称和图标的APK
- 一键打包出多个不同包名,不同应用名称和图标的APK
- 如何使用Android Studio用相同的代码工程生成不同的APP
- vim命令
- MVC vs. MVP vs. MVVM
- mysql查重语句
- object_setIvar
- ADB 连接错误:ADB server didn't ACK
- 如何打包生成App的两个不同名字,不同图标
- MySQL索引使用方法和性能优化
- javascript计算器的实现,暂时不支持小数点
- 在vs2010中使用wtl
- setClickable=false无效是什么原因
- android中开启线程
- MVVM架构~mvc,mvp,mvvm大话开篇
- C# 高德JavaScrpt地图航迹-实时更新
- App同一应用设置不同图标和名称