美文网首页
Xcode多环境配置

Xcode多环境配置

作者: 崔希羽 | 来源:发表于2021-01-16 00:54 被阅读0次

    在Xcode开发中通常会针对Debug/Release使用不同的服务器地址,最简单的方式那肯定是直接在代码中进行修改。但是如果每次都手动进行修改太麻烦了,也对不起我们程序员的身份不是~

    如何能更方便的进行管理呢,首先看下我们非常熟悉的几个东西:

    • project:包含了项目所有的代码,资源文件等所有信息。
    • target:对指定代码和资源文件的具体构建方式
    • scheme 对指定target的环境变量以及编译环境的配置

    显然我们可以从target以及scheme进行入手,废话不多说,直接切入正题。

    方式一

    通过添加User-Defined Settings,如HOST_URL,然后在Info.plist文件中添加自定义的键值对,如键=host,值=${HOST_URL},即可根据环境动态读取HOST_URL,通过访问Info.plist文件中的host取值。示例如下:


    image.png

    取值使用代码也比较简单,可以进行简单的封装再使用

        NSString *path = [[NSBundle mainBundle] pathForResource:@"Info.plist" ofType:nil];
        NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
        NSLog(@"%@",dict[@"host"]);
    

    但是如果参数较多,或者在release环境下使用测试地址等,再使用这种方式那就相对比较麻烦了,只能通过添加额外的参数进行控制,参数多了配置起来就会麻烦,而且容易遗漏或出错。
    幸好我们的Xcode已经支持了使用xcconfig文件对工程target进行配置,比如我们经常使用的cocoapods它就是使用这个功能来动态的修改我们的Other Link Flag或者Header Search Path等build settings里面的参数,那么同样我们自己也可以创建Configuration Settings File来使用。

    image.png
    方式二

    使用Xcode创建xcconfig文件,按照环境进行命名,然后可以看到会有一个苹果提供的使用说明的地址,实在是太贴心了~

    // Configuration settings file format documentation can be found at:
    // https://help.apple.com/xcode/#/dev745c5c974
    
    image.png

    然后就可以针对这几种环境定义不同的HOST_URL等值,也可以在这此文件中导入其它的xcconfig文件,还可以定义build settings里面的配置,对于这些build settings里面的选项的KEY,在官方网站提到,这里有一个小技巧,直接使用拖拽的方式将选项拖到xcconfig文件中,会自动显示出选项的键值对。

    添加scheme并针对scheme进行Build configuration的配置进行修改


    image.png

    使用自定义的Key时与方式一相同,将xcconfig中定义的key添加到Info.plist文件中读取

    我个人比较推荐第二种方式,这种方式更加方便管理和维护和扩展,更加符合开发的设计原则。

    相关文章

      网友评论

          本文标题:Xcode多环境配置

          本文链接:https://www.haomeiwen.com/subject/xfsgaktx.html