iOS中的配置和用户定义的设置

我遇到了一个挑战:以不同的应用程序名称,图标和相同的代码支持不同的国家。 “绿色”应用程序是原始应用程序,需要将原始“绿色”应用程序转换为具有不同属性的另一个应用程序,在演示中将其称为“红色”应用程序。

克隆到其他项目不是我的解决方案。 做了一些研究,最后,我做了这个解决方案。 针对市场使用不同的构建设置和方案。 我就是这样

–访问项目设置/信息。 将配置Debug and Release重命名为Debug_RedRelease_Red

–复制这两个配置,并将名称更改为Debug_GreenRelease_Green

–选择当前方案并编辑方案…

–选择重复计划,管理计划…

–选择一个方案,然后按Return键进行重命名。

–双击“方案红色”并检查左侧设置

–确保Debug,Test,Analyze是Debug_Red配置,Profile,Release是Release_Red 。 要更改配置,请选择信息,然后在构建配置中进行更改。

–与计划绿色相同

红色和绿色具有不同的名称,包ID,版本,内部版本号。 我必须添加一些用户定义的设置

–选择项目设置/编辑器/添加构建设置/添加用户定义

–添加一些设置: app_namebundle_idversionbuild_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上找到。