iOS中的配置和用户定义的设置
我遇到了一个挑战:以不同的应用程序名称,图标和相同的代码支持不同的国家。 “绿色”应用程序是原始应用程序,需要将原始“绿色”应用程序转换为具有不同属性的另一个应用程序,在演示中将其称为“红色”应用程序。
克隆到其他项目不是我的解决方案。 做了一些研究,最后,我做了这个解决方案。 针对市场使用不同的构建设置和方案。 我就是这样
–访问项目设置/信息。 将配置Debug and Release重命名为Debug_Red和Release_Red
–复制这两个配置,并将名称更改为Debug_Green和Release_Green
–选择当前方案并编辑方案…
–选择重复计划,管理计划…
–选择一个方案,然后按Return键进行重命名。
–双击“方案红色”并检查左侧设置
–确保Debug,Test,Analyze是Debug_Red配置,Profile,Release是Release_Red 。 要更改配置,请选择信息,然后在构建配置中进行更改。
–与计划绿色相同
红色和绿色具有不同的名称,包ID,版本,内部版本号。 我必须添加一些用户定义的设置
–选择项目设置/编辑器/添加构建设置/添加用户定义
–添加一些设置: app_name , bundle_id , version , build_number
–为新设置增加价值
–在“标签构建设置”中 ,搜索产品捆绑包标识符,然后输入值$(bundle_id)
–选择“ 常规”选项卡
–输入$(app_name)以显示名称 ,输入$(version)以版本 ,输入$(build_number)以进行构建
–将一些UILabel添加到Storyboard Main并连接插座
–添加一些代码以显示正在运行的应用程序的设置。
appNameLabel.text = Bundle.main.object(forInfoDictionaryKey:“ CFBundleDisplayName”)如? StringversionLabel.text = Bundle.main.infoDictionary?[“ CFBundleShortVersionString”]如? StringbuildLabel.text = Bundle.main.infoDictionary?[“ CFBundleVersion”]如? StringbundleIdLabel.text = Bundle.main.bundleIdentifier
– 有用
我们可以通过添加2个Launchscreens,2个具有相同名称,只是后缀不同的App Icons将此解决方案应用于Launchscreen,App Icon。
我们可以将“ 启动 屏幕”设置为“ 显示名称”,但是将“ 应用程序图标”配置为与“ 产品捆绑包标识符”相同
除此之外,我们需要根据App更改字体系列,主题颜色,文本颜色。 在这里怎么办。
协议配置{var themeColor:UIColor {获取设置} var textColor:UIColor {获取设置}} struct RedConfiguration:配置{var themeColor = UIColor.red var textColor = UIColor.white} struct GreenConfiguration:配置{var themeColor:UIColor = UIColor。绿色var textColor = UIColor.blue}
在我的主修课上
让配置:配置= {
如果让app = Bundle.main.object(forInfoDictionaryKey:“ CFBundleDisplayName”)为? 字符串{
如果app ==“红色” {
返回RedConfiguration()
}
其他{
返回GreenConfiguration()
}
}
返回RedConfiguration()
}()
我的演示资源可在Github上找到。