加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 一个代码库有三个略有不同的应用程序

发布时间:2020-12-14 20:05:40 所属栏目:百科 来源:网络整理
导读:我希望有三个应用程序,这些应用程序是基于相同的代码: MyAppDevelopment(从Xcode构建部署到设备) MyAppPreview(Beta测试) MyApp(发布) 应该可以将所有三个应用程序都安装在设备上,并且他们会有自己的图标,以便在视觉上很好地区分它们. 现在我知道我可以使用
我希望有三个应用程序,这些应用程序是基于相同的代码:

> MyAppDevelopment(从Xcode构建部署到设备)
> MyAppPreview(Beta测试)
> MyApp(发布)

应该可以将所有三个应用程序都安装在设备上,并且他们会有自己的图标,以便在视觉上很好地区分它们.

现在我知道我可以使用各自的Info.plist文件有三个不同的目标,但是我宁愿使用Xcode的配置,这样我就不必维护三个不同的目标.这是否可能使用配置,问题是应用程序标识符存储在Info.plist文件中,可以根据目标定义…

解决方法

为不同版本的应用程序使用不同的目标提供了更多的灵活性,并且您可以在每个目标指定不同的plist文件后轻松地更改包标识符和图标等.但是,这些配置与Xcode更加集成,您可以根据配置调整任何构建设置.

经过一些更多的研究,我想出了如何通过一个目标获得两个世界的最好的:

>在Xcode中创建所需的配置:ProjectName> ProjectName>信息.例如:

>调试
>预览
>发布

>现在,这三个配置可用于所有的构建设置.
>三个应用程序应该在设备上共存.
我想能够在一个设备上拥有App的所有三个版本,因为这三种类型都需要一个不同的bundle标识符.原始标识符可以是com.company.${PRODUCT_NAME:rfc1034identifier}.

>要实现这一点,请转到MyProject> MyApp(目标)>构建设置并点击按钮()添加构建设置
>添加新的密钥${APP_ID}并设置这样的值,并注意发布配置不应该有一个后缀:

APP_ID > 'com.company.MyApp-debug'
       > 'com.company.MyApp-preview'
       > 'com.company.MyApp'

>现在在您的Info.plist中将Bundle Identifier值更改为${APP_ID}

>您可以使用“捆绑显示名称”或“图标”属性进行相同操作,以便您可以轻松地区分应用程序.
>您可以为配置设置预处理器宏,以便能够检测代码中的当前配置.默认情况下,调试配置完成:DEBUG = 1.

优点

>由于三个应用程序都有自己的标识符,所以在测试Xcode中的当前应用程序时,不会覆盖最新的预览版本.
>很好地集成到Xcode中,提供了高度的灵活性
所有构建设置现在可以根据配置单独更改
通过克隆Xcode中的现有配置,可以轻松添加新配置
>不需要额外的目标
目标对于完全不同的工件(如具有不同代码库的库或测试目标)而言更好.
>如果需要,可以在代码中使用配置.
>不同的服务URLS等可用于不同的环境.看到这个great post(感谢Jonah!),显示如何使用一个特殊的plist文件.
>不使用任何难以维护的黑客脚本

缺点

>通过使用目标,可以从一种类型的应用程序中排除一些框架.因此,例如,您可以从应用程序的调试版中排除一些分析库.
>更新:您不能使用com.company.${PRODUCT_NAME:rfc1034identifier}替换用户定义的构建设置.因此,在这种情况下,您必须写出捆绑整个捆绑标识符.
>更新:应该使“配置感知”的一些设置移动到“构建设置”的“用户定义”部分,这对某些开发人员可能会感到不寻常.

结果

Result http://i.minus.com/jbwPgEiBra39dL.png

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读