PQSingletonEnvUtil.swift 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. //
  2. // PQSingletonEnvUtil.swift
  3. // PQSpeed
  4. //
  5. // Created by lieyunye on 2020/5/27.
  6. // Copyright © 2020 BytesFlow. All rights reserved.
  7. //
  8. import Foundation
  9. import KeychainAccess
  10. // add by ak 开发和发布版本的不同设置 1 为正式版本发布的苹果 0 是测试 XXXX 上传苹果前要检查
  11. public let DEVELOPMENT_ENVIRONMENT: Int = 1
  12. public enum ENVMode: String {
  13. case ENVModeOnline // 线上环境
  14. case ENVModePre // 预发布环境
  15. case ENVModeTest // 测试环境
  16. case ENVModeBJPre // 北京区预发布环境
  17. }
  18. public class PQENVUtil {
  19. public var envMode: ENVMode {
  20. let config = NSDictionary(contentsOfFile: Bundle.main.path(forResource: "PQConfig.plist", ofType: nil) ?? "")
  21. BFLog(message: "config is = \(String(describing: config))")
  22. let enStr: String = (config?.object(forKey: "ENVMode") ?? "ENVModeOnline") as! String
  23. BFLog(message: "ENVMode is \(enStr)")
  24. return ENVMode(rawValue: enStr)!
  25. }
  26. static public let shared: PQENVUtil = {
  27. let instance = PQENVUtil()
  28. // setup code
  29. return instance
  30. }()
  31. // 票圈视频主域名
  32. public var longvideoapi: String {
  33. switch envMode {
  34. case .ENVModeTest:
  35. return testLongvideoapi
  36. case .ENVModePre:
  37. return preLongvideoapi
  38. case .ENVModeBJPre:
  39. return preBJLongvideoapi
  40. default:
  41. return onlineLongvideoapi
  42. }
  43. }
  44. // 通用域名-eg:数据上报
  45. public var commonapi: String {
  46. switch envMode {
  47. case .ENVModeTest:
  48. return testCommonapi
  49. case .ENVModePre:
  50. return preCommonapi
  51. case .ENVModeBJPre:
  52. return preBJCommonapi
  53. default:
  54. return onlineCommonapi
  55. }
  56. }
  57. // 视频创作相关域名
  58. public var clipapiapi: String {
  59. switch envMode {
  60. case .ENVModeTest:
  61. return testLongvideoapi
  62. case .ENVModePre, .ENVModeBJPre:
  63. return preLongvideoapi
  64. default:
  65. return onlineClipapiApi
  66. }
  67. }
  68. // 创作工具搜索素材相关域名
  69. public var materialSearchApi: String {
  70. switch envMode {
  71. case .ENVModeTest:
  72. return testMaterialSearchApi
  73. case .ENVModePre, .ENVModeBJPre:
  74. return preMaterialSearchApi
  75. default:
  76. return onlineMaterialSearchApi
  77. }
  78. }
  79. // 消息相关域名
  80. public var messageApi: String {
  81. switch envMode {
  82. case .ENVModeTest:
  83. return testMessageApi
  84. case .ENVModePre, .ENVModeBJPre:
  85. return preMessageApi
  86. default:
  87. return onlineMessageApi
  88. }
  89. }
  90. }