mPaas iOS多开发环境切换介绍

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
mPaaS订阅基础套餐,标准版 3个月
简介: 在iOS⼯程开发过程中,⼏乎都会遇到多环境下切换和开发的需求,iOS原⽣开发Xcode 下是⽀持多target ⼯程开发的,基于mPaaS 框架开发多target ⼯程,在mPaaS 插件下默认是不⽀持的。但对于此类⾼频通⽤场景需求,在mPaaS 框架下也是有⽅案解决的。


一 背景

在iOS⼯程开发过程中,⼏乎都会遇到多环境下切换和开发的需求,iOS原⽣开发Xcode 下是⽀持多target ⼯程开发的,基于mPaaS 框架开发多target ⼯程,在mPaaS 插件下默认是不⽀持的。但对于此类⾼频通⽤场景需求,在mPaaS 框架下也是有⽅案解决的。

基于mPaaS 框架的iOS开发分两种⽅式接⼊mPaaS 框架,⽅式⼀是使⽤mPaaS 插件接⼊,⽅式⼆是使⽤ CocoaPods 接⼊。两种接⼊⽅式在mPaaS官⽹⽂档有详细介绍,参考⽂档: https://help.aliyun.com/document_detail/87352.htmlhttps://help.aliyun.com/document_detail/106682.html

二 多Target⼯程

1. 创建新的Target

选中⼯程project ⽂件下 TARGETS 新建Target(快捷键command + D)

复制后会在原来target基础上⽣成⼀个新的target,可以⾃定义新建target 的名字,同时会⽣成⼀个新的plist⽂件。plist⽂件的位置是在项⽬的主⽬录下,如果觉得放着不合适可以挪到某个⽂件夹下然后在引⼊到项⽬中。

创建完成后在可以⾃定义plist⽂件名称(推荐于target 名称⼀致),修改后需要在Build Settings 下修改Info.plist File 的路径。

2. mPaaS 插件接⼊

2.1. 导⼊配置

打开mPaaS插件 ->编辑⼯程 ->导⼊云端元数据,选中对应的target 点击选择配置⽂件,选中⾃⼰本地与之target 对应的config ⽂件,开始导⼊。导⼊后⼯程mPaaS⽂件夹下对应target ⽂件下会⽣成对应的 meta.config 文件和 yw_1222.jpg 无线保镖图片。

    选中不同的target 导⼊对应的 .config 配置⽂件,重复上述步骤直⾄所有target 环境都配置完成。

2.2. 编辑模块

使⽤mPaaS 插件编辑⼯程添加模块,这⾥必须要选中第⼀个target,添加需要的模块,勾选copy  开始编辑。

注:因mPaaS插件默认不⽀持多target,这⾥编辑添加模块只能选中第⼀个target   为⼊⼝编辑。否则会编辑模块报错,也会导致原本导⼊的配置⽂件和⽆线保镖被删除。

2.3. 勾选Target Membership

  1. 在不同target 下创建的plist ⽂件、导⼊的 meta.config 和⽆线保镖,需要⼿动勾选对应的 Target Membership。

  1. ⼿动复制原target 下APMobileFramework 和 mPaas⽂件夹,到新建target ⽂件下,⼿动修改DTFrameworkInterface 和 MPaaSInterface 分类名字(与target 名称匹配)。
  2. 将不同target 下⽤到的m类⽂件⼿动勾选对应的 Target Membership。
  3. 将mPaaS插件导⼊的各个模块framework 全选,⼿动勾选所有的 Target Membership。

注:这⾥推荐勾选所有target 为的是保证,各个target 下⼯程编译⼀致。也可以⼿动对不同target 勾选不同framework,但是需要客户⾃⾏分清各个模块framework的依赖关系,会得不偿失。

将上述四步操作完成后,就可以正常编译、运⾏不同target 下⼯程。

3. CocoaPods 接⼊

3.1. 导⼊配置和模块

  1. 重命名下载的 .config 配置⽂件,将⽂件名中的 ios 改为 iOS 。
  2. 将重命名后的 .config 配置⽂件拷⻉到⼯程的根⽬录下(与 Podfile 同级)。
  3. 在命令⾏执⾏ pod mpaas init 命令,⾃动处理 Podfile ⽂件,并添加 pluginsource 以及 mPaaS_baseline 配置。
  4. 配置 Podfile ⽂件。

指定 mPaaS 基线,修改 mPaaS_baseline 。添加 mPaaS 组件依赖,使⽤ mPaaS_pod 。 eg: mPaaS_pod "mPaaS_Nebula" ,其中 mPaaS_Nebula 为组件名称,更多组件名称参考上述官⽹⽂档。

添加多个target 的Podfile 配置内容,参考如图:

  1. 执⾏ pod install 即可完成接⼊。您还可以追加 --verbose 查看详细⽇志。

3.2. 勾选 Target Membership

  1. 在不同target 下创建的plist ⽂件、导⼊的 meta.config 和⽆线保镖,需要⼿动勾选对应的 Target Membership。
  2. 将不同target 下⽤到的m类⽂件⼿动勾选对应的 Target Membership,包括pod 创建的 DTFrameworkInterface 和 MPaaSInterface 分类。

注:pod 是可以在不同 target 导⼊不同mPaaS组件模块,不同target 下重复的组件模块 CocoaPods 也只会导⼊⼀份,因此不同target 完全可以编辑相同的Podfile 内容。

将上述步操作完成后,就可以正常编译、运⾏不同target 下的⼯程。

3. 不同Target 环境的加密和公钥

3.1. ⽹关加密和公钥

在创建不同target 时已经对应⽣成了 info.plist ⽂件,正常添加mPaaS ⽹关配置的加密公钥和加密⽹关地址即可。

3.2. H5离线包的公钥配置

在对应target 下的DTFrameworkInterface 分类中正常添加H5的验签公钥即可,示例如下图:

3.3. 热修复公钥配置

因热修复的公钥需要在main⽂件中使⽤,且需要对应的公钥签名数组。这⾥推荐使⽤宏定义,分别定义各个target 环境的宏定义开关。关于如何⾃定义target 宏定义开关,⽹上有很多Target宏定义的讲解:《 iOS 创建多个Target实现多渠道打包或者环境区分》。

mPaaS热修复在main 中使⽤具体参考热修复⽂档,这⾥只是宏定义开关举例,如图:

三 总结

在mPaaS框架下使⽤多target 环境⼯程还有⼀些注意点:

  1. 在编译不同target 环境时注意编辑Schemes,Run 和打包Archive 对应选择⾃⼰创建的Preprocessor

Macros。

  1. 不同target 环境的公钥,包括H5离线包验签公钥和热修复验签公钥,注意区分不要混淆。
  2. 在不同target 环境切换后,注意检查各项配置,特别是上线App Store的⽣产环境配置着重检查。
目录
相关文章
|
2月前
|
IDE Android开发 iOS开发
深入解析Android与iOS的系统架构及开发环境差异
本文旨在探讨Android和iOS两大主流移动操作系统在系统架构、开发环境和用户体验方面的显著差异。通过对比分析,我们将揭示这两种系统在设计理念、技术实现以及市场策略上的不同路径,帮助开发者更好地理解其特点,从而做出更合适的开发决策。
164 2
|
2月前
|
开发工具 Android开发 Swift
安卓与iOS开发环境对比分析
在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统无疑是主角。它们各自拥有独特的特点和优势,为开发者提供了不同的开发环境和工具。本文将深入浅出地探讨安卓和iOS开发环境的主要差异,包括开发工具、编程语言、用户界面设计、性能优化以及市场覆盖等方面,旨在帮助初学者更好地理解两大平台的开发特点,并为他们选择合适的开发路径提供参考。通过比较分析,我们将揭示不同环境下的开发实践,以及如何根据项目需求和目标受众来选择最合适的开发平台。
51 2
|
1月前
|
开发工具 Android开发 iOS开发
深入解析安卓与iOS开发环境的优劣
【10月更文挑战第4天】 本文将深入探讨安卓和iOS两大主流移动操作系统的开发环境,从技术架构、开发工具、用户体验等方面进行详细比较。通过分析各自的优势和不足,帮助开发者更好地理解这两个平台的异同,从而为项目选择最合适的开发平台提供参考。
24 3
|
1月前
|
开发工具 Android开发 Swift
安卓与iOS开发环境的差异性分析
【10月更文挑战第8天】 本文旨在探讨Android和iOS两大移动操作系统在开发环境上的不同,包括开发语言、工具、平台特性等方面。通过对这些差异性的分析,帮助开发者更好地理解两大平台,以便在项目开发中做出更合适的技术选择。
|
1月前
|
开发工具 Android开发 iOS开发
安卓与iOS开发环境深度对比
【10月更文挑战第1天】本文旨在探讨和分析安卓(Android)与苹果(iOS)两大主流移动操作系统在应用开发环境上的不同点。通过比较它们的开发工具、语言、用户体验设计、市场策略及生态系统,本文将为开发者提供一份详尽的参考指南,帮助他们做出更合适的开发平台选择。此外,文章还将探讨两大平台未来的发展趋势,以及这些趋势可能对开发者和用户产生的影响。
48 0
|
2月前
|
IDE Java Android开发
安卓与iOS开发环境的差异及其对开发者的影响
在数字时代的浪潮中,移动应用成为人们生活的延伸。两大操作系统——安卓与iOS,如同两座技术高峰,各自占据着半壁江山。本文将探索这两个平台的开发环境差异,并讨论这些差异如何塑造开发者的编程习惯与职业选择。我们将从工具和语言、用户界面设计、系统架构、市场定位以及开发社区和资源五个方面进行比较,旨在为开发者提供一份实用的指南,帮助他们在不断变化的技术世界中,找到适合自己的发展路径。
55 3
|
2月前
|
移动开发 Android开发 Swift
安卓与iOS开发环境对比:选择合适的平台
在数字时代的浪潮中,移动应用开发成为技术前沿的热门领域。两大主流操作系统——安卓和iOS,各自拥有独特的开发环境与生态。本文将深入探讨这两种平台的开发特点,帮助开发者根据自己的需求和资源选择最合适的开发路径。从工具支持到用户群体,从编程语言到市场分布,我们将一一剖析,为即将踏上移动开发之旅的朋友们提供一盏明灯。
|
3月前
|
Java 开发工具 Android开发
安卓与iOS开发环境对比分析
【8月更文挑战第20天】在移动应用开发的广阔天地中,Android和iOS两大平台各自占据着重要的位置。本文将深入探讨这两种操作系统的开发环境,从编程语言到开发工具,从用户界面设计到性能优化,以及市场趋势对开发者选择的影响。我们旨在为读者提供一个全面的比较视角,帮助理解不同平台的优势与挑战,并为那些站在选择十字路口的开发者提供有价值的参考信息。
|
2月前
|
开发工具 Android开发 iOS开发
安卓与iOS开发环境对比:选择适合你的平台
【9月更文挑战第26天】在移动应用开发的广阔天地中,安卓和iOS是两大巨头。它们各自拥有独特的优势和挑战,影响着开发者的选择和决策。本文将深入探讨这两个平台的开发环境,帮助你理解它们的核心差异,并指导你根据个人或项目需求做出明智的选择。无论你是初学者还是资深开发者,了解这些平台的异同都至关重要。让我们一起探索,找到最适合你的那片开发天地。
|
2月前
|
IDE 开发工具 Android开发
安卓与iOS开发环境对比分析
本文将探讨安卓和iOS这两大移动操作系统在开发环境上的差异,从工具、语言、框架到生态系统等多个角度进行比较。我们将深入了解各自的优势和劣势,并尝试为开发者提供一些实用的建议,以帮助他们根据自己的需求选择最适合的开发平台。
47 1