Tag: 配置

iOS自动配置

在图卢兹举行的最后一次培训营中,我们决定使用存储在OpenPaaS上的用户配置来自动配置移动设备。 通过自动配置,我们希望自动配置Email,CalDAV和CardDAV服务器设置。 我们组织了两个团队:一个在iOS设备上工作,另一个在Android设备上工作。 我决定使用iOS设备,因为我想发现这个模棱两可的黑框“ iOS”字样。 在深入研究iOS系统后,我发现了一个内置的配置实用程序,称为“配置配置文件”。 配置配置文件是一个“ .mobileconfig” XML文件,可用于分发配置信息。 如果您需要配置大量设备或为大量设备提供大量自定义电子邮件设置,网络设置或证书,则配置文件是一种简便的方法。 尽管我不是iOS系统的忠实拥护者,但我不得不承认,概要文件对于所有开始采用iOS策略的企业或为轻松配置iOS设备供企业使用而苦苦挣扎的企业来说,都是一个不错的工具。 使用配置文件,可以配置多个设置,包括电子邮件,密码,VPN,Wi-Fi,CalDAV,CardDAV和设备限制。 这些设置可以通过非常简单的HTTP“ GET”请求轻松地应用于多个iOS设备,以便直接设置这些设备。 什么是引擎盖下? 我们首先从服务器端为配置文件创建一个髭XML模板: 结论: 在这次研讨会中,我非常高兴发现iOS中配置文件的内置支持。 但是,我不喜欢这样的事实,我们必须为开发人员Apple帐户付费才能将我们的应用程序部署到真实的iOS设备上。 总而言之,iOS并不是那么痛苦😉

使用配置切换环境

我遇到的最好的解决方案是配置 ,也称为构建配置 。 配置是在项目级别定义的,这意味着您可以将其用于项目的每个目标,并利用方案来定义特定构建的配置。 在本教程中,我将向您展示如何设置一个定义几种配置的项目。 结合使用方案,配置使您可以轻松地在环境之间切换。 项目设置 打开Xcode并基于Single View Application模板创建一个新项目。 添加配置 每个Xcode项目都包含两个默认配置, Debug和Release 。 对于某些项目,这些配置就足够了。 但是,暂时假设您正在构建与Web服务交互的应用程序。 该Web服务定义了两个环境, Staging和Production 。 配置可以帮助您轻松地在这些环境之间快速切换。 在Xcode中打开项目后,在左侧的项目浏览器中选择项目。 配置是在项目级别定义的。 要检查配置列表,请打开顶部的“ 信息”选项卡,然后找到“ 配置”部分。 点击+按钮并使用Duplicate“ Debug” Configuration添加配置。给新名称Staging Debug,相同 如 通过选择重复的“调试”配置来使用Release版本,名称是Production Release。 为了确保在运行时可以访问配置,我们将其存储在目标的Info.plist中 。 这很容易做到。 在左侧的Project Navigator中 ,选择Info.plist ,单击鼠标右键,然后选择Add Row创建一个新的键值对。 将密钥设置为Configuration ,并将值设置为$(CONFIGURATION) 。 可通过环境变量CONFIGURATION访问在构建过程中使用的配置。 这使我们很容易在构建过程中动态更新目标的Info.plist 。 定义方案 通过将当前配置存储在目标的Info.plist中 ,现在可以添加轻松切换环境的功能了。 为此,我们为每个配置添加了一个方案。 点击左上方的活动方案,然后选择管理方案 。 点击+按钮并添加名为StagingDebug,ProductionRelease的方案。 不需要与配置同名。 您可以使用其他名称。 […]

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 = […]

在iOS应用中使用不同的Firebase环境

近年来, Firebase变得非常流行。 您可能知道,Firebase是一个后端即服务 ,这意味着它以最小的配置在后端提供了多个服务以使其正常运行。 它现在属于 Google ,它于2014年购买了它,因此它正在迅速发展和发展,其文档以及技术支持都非常出色。 Firebase提供了各种各样的产品 :分析,实时无SQL数据库,音频,照片和视频存储,推送通知,功能(无服务器代码),动态链接……您可以在官方文档中查看整个列表。 不同的环境 如果您正在阅读本文,则可能已决定对iOS应用程序使用某些Firebase服务。 应用程序开发中的常见场景是拥有不同的环境 ,例如调试 ,质量保证, 测试版 , 生产 … 当您的应用处于开发模式时,或在质量保证部门进行测试时,某些“ 数据污染 ”可能会到达Firebase服务器。 我将对此进行简要说明。 假设您的应用程序将使用Firebase Analytics和Firebase Realtime Database 。 质量检查部门的测试人员已收到您的二进制文件,并将尝试使用它。 他们将在应用程序中导航,点击按钮,在数据库中插入数据……您正在向Firebase发送“ 虚假信息 ”,并且您不想将这些污染数据与真实用户信息混合在一起。 换句话说,您可能会将测试人员的事件 (您仅希望用于测试目的)与最终用户的信息(您希望为应用程序的正确行为所混合)混合在一起 。 该解决方案包括在您的应用程序中具有不同的环境 ,以使每个应用程序中的信息隔离,并且不会与其他应用程序混合。 在xcode中设置Firebase环境 我们将从头开始了解如何为不同的Firebase环境配置xcode。 我没有看到太多有关此主题的文档,所以我决定解释如何做。 首先创建一个新的xcode项目并设置两个环境: debug和release 。 如果您需要帮助,可以参考本文。 如果您懒于创建和配置项目,也可以从此处下载入门项目。 您必须完成以下步骤: 在Firebase控制台中,创建两个单独的项目(不是应用程序):一个用于调试环境,另一个用于发行版 。 适当地命名它们,以免混淆它们。 2.为每个项目创建一个iOS应用。 请小心输入您在xcode中分配给每个项目的包ID 。 3.下载Firebase为每个项目生成的GoogleService-Info.plist 。 现在,将它们保存在硬盘驱动器上的其他位置。 与其重命名debug-plist文件,不如将文件名保留为默认值。 […]

使用.xcconfig文件在Xcode Project中存储各种SDK密钥和ID。

可以直接保存在plist中。 如果是Facebook和Google Login集成,则还必须在项目目标->信息中添加URL类型。 如果有一天,您必须为项目更改这些开发密钥,ID,机密ID,ClientId,RevereClientId等。 然后,您必须在多个位置(例如info.plist,项目目标的信息中的URL类型和.swift文件中的URL类型)中更改这些内容。 因此,如果您只想在一个地方管理这些事情,这就是解决方案。 在名为Release.xcconfig和Debug.xcconfig的项目中创建两个带有.xconfig扩展名的文件,并在如下所示的两个文件中写入各种SDK的所有密钥,ReverseClientIds,ClientIds等。 URL类型内重复相同(项目目标->信息) 如果要访问.xcconfig,则.swift文件中的任何键或值。 就像使用Google SignIn一样,您必须使用以下代码访问Google Client ID GIDSignIn.sharedInstance()?. clientID = xxxxxxxxxxxx 这样,您将无法直接从.xconfig文件访问值,但可以从Info.plist文件访问值。 因此,请先确保将其添加到Info.plist中 在我们的情况下,该名称以GOOGLE_CLIENT_ID的名称添加。 因此,要从Info.plist访问此代码,请编写以下代码。 让googleClientID =(Bundle.main.infoDictionary?[“ GOOGLE_CLIENT_ID”] 作为 ?字符串)? .replacingOccurrences(of:“ \\”,其中:“”) 还有一件事,如果您已经安装了Facebook SDK,GoogleSDK或任何其他SDK,则可以按照以下命名约定在xcode项目中找到两个.xcconfig文件。 Pods-PROJECT_NAME.debug.xcconfig Pods-PROJECT_NAME.release.xcconfig 因此,您已经分别将这些文件导入或包含在Release.xcconfig和Debug.xcconfig文件中。 在第一行的Release.xcconfig中写入以下内容。 #include“ Pods /目标支持文件/Pods-PROJECT_NAME/Pods-PROJECT_NAME.release.xcconfig” 在Debug.xcconfig里面写这个。 #include“ Pods /目标支持文件/Pods-PROJECT_NAME/Pods-PROJECT_NAME.debug.xcconfig” 现在,您必须完成最后一步。 转到项目导航器->信息->配置 并使用您创建的文件(如下所示)更改带有红色标记的xcconfig文件。 现在,您将所有密钥,ClientID等都集中在一个地方。 您可以随时在Release.xconfig和Debug.xcconfig文件中进行更改。 快乐的编码:— — — — — — — —)和平家伙 如果您觉得有帮助,请这样做。