default_platform(:ios)

platform :ios do
  desc "Description of what the lane does"
  # 打包时候用的名称   例如 fastlane app

  bundle_id = "com.intelligence.galaxy"
  adhoc_profile_name = "com.adhoc.profile"
  release_profile_name = "com.dis.profile"

  extension_bundle_id = "#{bundle_id}.yinheReplayExt"
  extension_adhoc_profile_name = "replayKitProfile_adhoc"
  extension_release_profile_name = "replayKitProfile_release"
  
  adhoc_pgyer_api_key = "ba79f62a052072f2486ad29632fefd46"
  release_pgyer_api_key =  "80288e92bc9ff83c45df5d0ee778853b"

  # bugly app_id
  adhoc_bugly_app_id = "3b10faa43e"
  release_bugly_app_id = "5dc2acc53e"

  # bugly app_key
  adhoc_bugly_app_key = "e4bd292e-596d-4942-afda-dd841808218e"
  release_bugly_app_key = "ce23936f-3625-4452-92d9-31551858ae02"

  # 上传符号表相对路径
  adhoc_symbol_path = "./App/ad-hoc/galaxy.app.dSYM"
  release_symbol_path = "./App/Release/galaxy.app.dSYM"

  #可以用来打包的分支
  develop_branch = "develop"
  main_branch = "main"
  davidhuang_branch = "davidhuang"
  alex_branch = "main-bugfix-alex"
  xmas_1130_branch = "qmas-1130"
  yinhe_live_1212 = "yinhe-live-1212"
  sc_105_branch = "sc-1.0.5"
  main_fix = "main-fix"
  jiaofei = "jiaofei"
  plan = "4.25-1"
  push = "HIGH"
  txIM = "develop-desk-tx"
  gift = "gift_push"
  Im_618 = "develop-tx-618"
  GZL = "GZL"
  xq = "xq"
  webFix = "develop_bugfix_web"
  kjzf = "kjzf"
  develop_fix_adopter = "develop_fix_adopter"
  txim_add_card = "txim_add_card"
  dev_1013 = "dev_1013"
  qrcode = "qrcode"

  #打包正使用的分支
  myPack_branch = qrcode


  # 打adhoc包 执行命令 fastlane galaxyTest
  lane :galaxyTest do 
    # add actions here: https://docs.fastlane.tools/actions

    sh "git checkout #{myPack_branch}"
     # 拉取最新代码
     sh "git pull origin #{myPack_branch}"
     # 显示git当前分支最新submit id
     sh "git rev-parse HEAD"
     # 更新pod第三方库
     #cocoapods(use_bundle_exec: true)

     # 先清空打包路径下的文件
    sh "pwd"
    sh "rm -rf ../App/ad-hoc/*"

    gym(
    workspace: 'galaxy.xcworkspace',
    # 每次打包之前clean一下
    clean: true,    
    # 打包出 ipa 文件的路径，我放到了桌面文件夹，你自行更改文件夹
    output_directory: './App/ad-hoc',
    # 打包的名称，可任意取 
    output_name: 'galaxy.ipa', 
    # 项目的 scheme，自己项目名   .xcworkspace 前面的项目名就是
    scheme: "galaxyForTestArchive",      
    # 默认 Release，Release or Debug     
    configuration: 'TestEnv', 
    # 是否包含 bitcode  
    include_bitcode: false,  
    # 是否包含 symbols 
    include_symbols: true, 
    # 打包导出方式，包含 app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application   
    export_method: 'ad-hoc',  
    # 这个设置是为了设置 xcode 自动配置证书和配置文件，当然也可以手动配置，可以参考文档
    # export_xcargs: '-allowProvisioningUpdates', 
    
    #手动配置证书和配置文件
    export_options: {
      signingStyle: "manual",
      provisioningProfiles: {
        "#{bundle_id}" => "#{adhoc_profile_name}",
        "#{extension_bundle_id}" => "#{extension_adhoc_profile_name}"
      }
    }
    )

    # mac上的通知弹窗，通知打包完毕
    notification(app_icon: "", title: "manager", subtitle: "打包成功，已导出安装包", message: "准备发布到蒲公英中……")
  

   #配置上传蒲公英账号  蒲公英的 api_key
   pgyer(
    # 蒲公英 API Key
    api_key: "#{adhoc_pgyer_api_key}"
   )

   # mac上的通知弹窗，通知上传pgy完毕
   notification(app_icon: "", title: "manager", subtitle: "安装包上传到蒲公英成功", message: "准备上传符号表到bugly")

  #上传符号表
  #1、通过 bugly 官网下载 buglyqq-upload-symbol.jar，可直接点击该链接下载
  #2、下载后放在 ~/bin/ 文件夹下，文件夹不存在时手动创建

  adhoc_version = get_version_number_from_xcodeproj(scheme: "galaxyForTestArchive", xcodeproj: "./galaxy.xcodeproj")
  adhoc_build_number = get_build_number_from_xcodeproj(scheme: "galaxyForTestArchive", xcodeproj: "./galaxy.xcodeproj")
  adhoc_version_key = "#{adhoc_version}.#{adhoc_build_number}"  

  # 解压.dSYM.zip
  sh "unzip -o ../App/ad-hoc/galaxy.app.dSYM.zip -d ../App/ad-hoc"

   upload_to_bugly(
    appid: adhoc_bugly_app_id,
    appkey: adhoc_bugly_app_key,
    bundleid: bundle_id,
    version: adhoc_version_key,
    inputSymbol: adhoc_symbol_path)

  # mac上的通知弹窗，通知上传符号表完毕
  notification(app_icon: "", title: "manager", subtitle: "符号表上传到bugly成功", message: "")

  end

  
  # 打realease包 执行命令 fastlane galaxyRelease
 lane :galaxyRelease do 
    # add actions here: https://docs.fastlane.tools/actions

    sh "git checkout #{myPack_branch}"
    # 拉取最新代码
    sh "git pull origin #{myPack_branch}"
    # 显示git当前分支最新submit id
    sh "git rev-parse HEAD"
    # 更新pod第三方库
    #cocoapods(use_bundle_exec: true)

     # 先清空打包路径下的文件
     sh "pwd"
     sh "rm -rf ../App/Release/*"
  
    gym(
    workspace: 'galaxy.xcworkspace',
    # 每次打包之前clean一下
    clean: true,    
    # 打包出 ipa 文件的路径，我放到了桌面文件夹，你自行更改文件夹
    output_directory: './App/Release',
    # 打包的名称，可任意取 
    output_name: 'galaxy.ipa', 
    # 项目的 scheme，自己项目名   .xcworkspace 前面的项目名就是
    scheme: "galaxy",      
    # 默认 Release，Release or Debug     
    configuration: 'Release', 
    # 是否包含 bitcode  
    include_bitcode: false,  
    # 是否包含 symbols 
    include_symbols: true, 
    # 打包导出方式，包含 app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application   
    export_method: 'ad-hoc',  
    # 这个设置是为了设置 xcode 自动配置证书和配置文件，当然也可以手动配置，可以参考文档
    # export_xcargs: '-allowProvisioningUpdates', 
    
    #手动配置证书和配置文件
    export_options: {
      signingStyle: "manual",
      provisioningProfiles: {
       "#{bundle_id}" => "#{adhoc_profile_name}",
       "#{extension_bundle_id}" => "#{extension_adhoc_profile_name}"
      }
    }
    )
  
    # mac上的通知弹窗，通知打包完毕
    notification(app_icon: "", title: "manager", subtitle: "打包成功，已导出安装包", message: "准备发布到蒲公英中……")

   #配置上传蒲公英账号  蒲公英的 api_key和 user_key  用自己蒲公英账号的，别用我的！！！如果没有可删除
   pgyer(
    # 蒲公英 API Key
    api_key: "#{release_pgyer_api_key}"
   )

   # mac上的通知弹窗，通知上传pgy完毕
   notification(app_icon: "", title: "manager", subtitle: "安装包上传到蒲公英成功", message: "准备上传符号表到bugly")

  release_version = get_version_number_from_xcodeproj(scheme: "galaxy", xcodeproj: "./galaxy.xcodeproj")
  release_build_number = get_build_number_from_xcodeproj(scheme: "galaxy", xcodeproj: "./galaxy.xcodeproj")
  release_version_key = "#{release_version}.#{release_build_number}"

  # 解压.dSYM.zip
  sh "unzip -o ../App/Release/galaxy.app.dSYM.zip -d ../App/Release"

   upload_to_bugly(
    appid: release_bugly_app_id,
    appkey: release_bugly_app_key,
    bundleid: bundle_id,
    version: release_version_key,
    inputSymbol: release_symbol_path)

  # mac上的通知弹窗，通知上传符号表完毕
  notification(app_icon: "", title: "manager", subtitle: "符号表上传到bugly成功", message: "")

  end


  # 打uat包 执行命令 fastlane galaxyUat
 lane :galaxyUat do 
    # add actions here: https://docs.fastlane.tools/actions

    sh "git checkout #{myPack_branch}"
    # 拉取最新代码
    sh "git pull origin #{myPack_branch}"
    # 显示git当前分支最新submit id
    # sh "git rev-parse HEAD"
    # 更新pod第三方库
    # cocoapods(use_bundle_exec: true)
  
    gym(
    workspace: 'galaxy.xcworkspace',
    # 每次打包之前clean一下
    clean: true,    
    # 打包出 ipa 文件的路径，我放到了桌面文件夹，你自行更改文件夹
    output_directory: './App/uat',
    # 打包的名称，可任意取 
    output_name: 'galaxy-uat.ipa', 
    # 项目的 scheme，自己项目名   .xcworkspace 前面的项目名就是
    scheme: "galaxyForUat",      
    # 默认 Release，Release or Debug     
    configuration: 'UatEnv', 
    # 是否包含 bitcode  
    include_bitcode: false,  
    # 是否包含 symbols 
    include_symbols: true, 
    # 打包导出方式，包含 app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application   
    export_method: 'ad-hoc',  
    # 这个设置是为了设置 xcode 自动配置证书和配置文件，当然也可以手动配置，可以参考文档
    # export_xcargs: '-allowProvisioningUpdates', 
    
    #手动配置证书和配置文件
    export_options: {
      signingStyle: "manual",
      provisioningProfiles: {
       "#{bundle_id}" => "#{adhoc_profile_name}",
       "#{extension_bundle_id}" => "#{extension_adhoc_profile_name}"
      }
    }
    )


   #  # mac上的通知弹窗，通知打包完毕
   #  notification(app_icon: "./fastlane/icon.png", title: "manager", subtitle: "打包成功，已导出安装包", message: "准备发布到蒲公英中……")

   # #配置上传蒲公英账号  蒲公英的 api_key和 user_key  用自己蒲公英账号的，别用我的！！！如果没有可删除
   # pgyer(
   #  # 蒲公英 API Key
   #  api_key: "#{adhoc_pgyer_api_key}"
   # )
  end
end
