服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - iOS使用Target如何快速科学的区分开发环境详解

iOS使用Target如何快速科学的区分开发环境详解

2021-04-07 16:27海边的1984_ IOS

这篇文章主要给大家介绍了关于iOS使用Target如何快速科学的区分开发环境的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

前言

本文主要给大家介绍了关于ios利用target区分开发环境的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

什么是区分开发环境:

请求的域名+第三方sdk账号的不同。

  • 请求的域名-->因为开发环境和正式环境的服务器和数据库基本上都不是同一个。
  • 第三方sdk账号-->第三方sdk需要账号区分防止开发测试数据污染正式环境
    (推送+友盟统计是最明显的例子)

这篇文章要点:

  • 如何使用target去区分开发环境
  • 如何在1的基础上面巧妙的区分第三方sdk的账号

最终目的

在打包的时候切换对应环境的target进行编译即可获得对应的安装包。

引子:

开发app区分环境是必不可少的话题,从 开发测试环境->pr环境->生产环境,甚至更多的环境,如何快速的进行管理是一个值得探讨的话题。

不少项目在这方面好像没有一个很好的解决方案导致项目到后期的时候第三方sdk的混乱以及各个环境之间的相互污染。虽然很多sdk已经提前给出了测试机的注册等等方案,但是个人觉得还是比较麻烦。所以我们公司在很早的时候ios小组一起讨论出下面这种方案。已经在我们公司的后期开发的多个app进行使用。

下面开始讲讲我们公司的解决方案吧(文章底部有demo链接)

1.建立项目

2.将项目的target更改为dev环境的

iOS使用Target如何快速科学的区分开发环境详解

3.建立管理第三方平台的类目

这张有疑问不要紧,步骤完成后会详细讲解

iOS使用Target如何快速科学的区分开发环境详解

4.建立appstore环境下对应的target

在开发环境的target上面右键duplicate一个新的target,并且修改target名称为cbtdistingguishappstoreenvironment

5.修改plist文件,对应上正确的target

这时候你会看到多生成了一个plist文件,不同的target的plist文件不共享我们需要修改这个plist的对应关系以及名字。在修改plist名字的时候你会发现target下面的对应的plist都空了,这时候就可以选择对应的plist文件了。

下面是新建好对应关系的target和plist文件

iOS使用Target如何快速科学的区分开发环境详解

6.managerscheme

修改对应的scheme名字,用于更好的辨认app环境

iOS使用Target如何快速科学的区分开发环境详解

iOS使用Target如何快速科学的区分开发环境详解

7.上面步骤完成之后,打包之用切换target进行编译即可获取对应环境的app

(demo里面切换环境运行打印,你会发现得到的是不同的结果)

iOS使用Target如何快速科学的区分开发环境详解

这里来解释一下这个方案的核心

iOS使用Target如何快速科学的区分开发环境详解

文件

      a.分别定义两个环境的bundleid对应的宏

      b.定义了一个能够在不同环境下面获取到对应环境bundleid的宏

      c.定义根据不同环境区分不同的请求地址

      d.定义根据不同环境区分不同的sdk区域

用法:

?
1
kgetuiconfig[kbundleid][@"appid"]

假设现在app环境处于测试环境

kgetuiconfig是一个字典

iOS使用Target如何快速科学的区分开发环境详解

kgetuiconfig[kbundleid] 是如图字典

iOS使用Target如何快速科学的区分开发环境详解

kgetuiconfig[kbundleid][@"appid"]--> ebcsh9j11111111ghsz9hb5

iOS使用Target如何快速科学的区分开发环境详解

如果你觉得有点绕是正常的,多看两遍就知道了。

踩过的坑和注意点

1、第三方sdk去注册账号需要区分bundleid的时候,这时候一定需要创建两个账号(n个环境n个账号),其他不需要区分bundleid的,尽量创建两个账号,这样区分环境才有意义。

2、不同target必须要对应不同的plist,需要进行配置,如果实在搞不清楚,就删除所有的plist,然后重新添加,这样target上面对应的pilst为空的时候就能进行选择配置。

3、添加新类的的时候记得勾选上两个target

iOS使用Target如何快速科学的区分开发环境详解

4、target进行duplicate的时候会复制所有的代码。但是plist不共享。

源码下载:

github下载地址:点击这里

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:http://www.jianshu.com/p/4dde6d2a2f20

延伸 · 阅读

精彩推荐
  • IOSiOS布局渲染之UIView方法的调用时机详解

    iOS布局渲染之UIView方法的调用时机详解

    在你刚开始开发 iOS 应用时,最难避免或者是调试的就是和布局相关的问题,下面这篇文章主要给大家介绍了关于iOS布局渲染之UIView方法调用时机的相关资料...

    windtersharp7642021-05-04
  • IOSiOS 雷达效果实例详解

    iOS 雷达效果实例详解

    这篇文章主要介绍了iOS 雷达效果实例详解的相关资料,需要的朋友可以参考下...

    SimpleWorld11022021-01-28
  • IOSiOS通过逆向理解Block的内存模型

    iOS通过逆向理解Block的内存模型

    自从对 iOS 的逆向初窥门径后,我也经常通过它来分析一些比较大的应用,参考一下这些应用中某些功能的实现。这个探索的过程乐趣多多,不仅能满足自...

    Swiftyper12832021-03-03
  • IOSIOS开发之字典转字符串的实例详解

    IOS开发之字典转字符串的实例详解

    这篇文章主要介绍了IOS开发之字典转字符串的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握这样的方法,需要的朋友可以参考下...

    苦练内功5832021-04-01
  • IOSiOS中tableview 两级cell的展开与收回的示例代码

    iOS中tableview 两级cell的展开与收回的示例代码

    本篇文章主要介绍了iOS中tableview 两级cell的展开与收回的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    J_Kang3862021-04-22
  • IOS关于iOS自适应cell行高的那些事儿

    关于iOS自适应cell行高的那些事儿

    这篇文章主要给大家介绍了关于iOS自适应cell行高的那些事儿,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    daisy6092021-05-17
  • IOSIOS 屏幕适配方案实现缩放window的示例代码

    IOS 屏幕适配方案实现缩放window的示例代码

    这篇文章主要介绍了IOS 屏幕适配方案实现缩放window的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    xiari5772021-06-01
  • IOS解析iOS开发中的FirstResponder第一响应对象

    解析iOS开发中的FirstResponder第一响应对象

    这篇文章主要介绍了解析iOS开发中的FirstResponder第一响应对象,包括View的FirstResponder的释放问题,需要的朋友可以参考下...

    一片枫叶4662020-12-25