更新构建配置,为必要渠道添加相关证书

main
liuchunguang 2026-02-06 14:36:31 +08:00
parent c44a2bd1e1
commit fa36a49d97
19 changed files with 491 additions and 259 deletions

View File

@ -47,6 +47,7 @@ Packages:
- DeviceHelper@0.0.1 - DeviceHelper@0.0.1
- AIhelper@latest - AIhelper@latest
- WXPay@latest - WXPay@latest
- DeviceHelper@0.0.1
# 爱加密配置 # 爱加密配置
Encryption: Encryption:

View File

@ -0,0 +1,33 @@
-----BEGIN CERTIFICATE-----
MIIFpjCCA46gAwIBAgIDAYVJMA0GCSqGSIb3DQEBCwUAMIGAMQswCQYDVQQGEwJD
TjEQMA4GA1UECAwHQmVpamluZzEMMAoGA1UECgwDTVNBMREwDwYDVQQLDAhPQUlE
X1NESzEeMBwGA1UEAwwVY29tLmJ1bi5taWl0bWRpZC5zaWduMR4wHAYJKoZIhvcN
AQkBFg9tc2FAY2FpY3QuYWMuY24wHhcNMjUxMDI2MTQxMTEwWhcNMjYxMDI3MTQx
MTEwWjCBlzELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcM
B0JlaWppbmcxGjAYBgNVBAoMEWh1b2VyZ3Vvc2luYWx1b2RhMSEwHwYDVQQDDBhj
b20ucGh4aC5ubGRkZXYuYmlsaWJpbGkxJTAjBgkqhkiG9w0BCQEWFm1heXVhbnpo
ZW5nQHBoeGhjZC5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCy
GC9T3GW4BSsvnVNqb8+HlnjJAQvTPd7H13m1f945uUsUYYMaaZuICYjb4qefZUyQ
gyxBUTYfBOTpE7ccdcNoZgCp05RTng30zvkc4pjawJIkNeIC2NGlN7RquO4Ka/06
LSuq5N+bfL78E0MwZAinoxSswf/yNY5R1LJ2b3I7BnW7rVSb7KbB0Q4z5KmuJ04h
PVl7BtSdfVnvnRVTBDRm/cMgyupEl+CCGW8HUejzPHdHeHRK1rx7fuwQI+5jgMmD
YRNXZD4AmJ0vClurQR5avN2xOuxB8HbtB+lQitsNnQCvYY1Xp4s7FtfmT6JzDNQ/
/vRgXxYrOaVFfoY/ugrO+SfZtqej+mdKR3KgOaAA75t8zcJfM6WGrbPJl3xHc2bh
D4kGwRkTAcHJ7WQOIrWz85CPCfIoYh8nZlBlsCNamJJh6Pl2nAtmnfMtDuYZJo/2
QK6J/KFtywsYIekU6fiRsJaaunBf5sD9IxbvJcRRB+HRCsySKYEg8z7Xlh90fHim
fUgT0Gt44/o+nzPh7Cq9Ay6dWtMxYFx78Z1epapOJdUNpZWIET8wQHriJmbJ18Tl
idGRAW85kW2ka2cr4u6Ed68JQa+nN+kbS0dDeuvOBGOsiqqCy5aeA0oz88HRWWIg
a02PLTZbEs4PdYrNzHWCISjnk34KpwwxYJUn6Zpy1wIDAQABoxAwDjAMBgNVHRMB
Af8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQBxpDWEXdZniXP2aQXNG7W7JQBKrwKE
Vsd+Rah28XU6U+5sYWPmMgnupJ9u3ubS9MD1U9fzrkzInt8TtGDUJzp52fQUU8S4
ZEbHVry2Urp+sQtkUhWNRUnFWmF/18WzT52oU9zlqoH+278zvS63Ys62/0qbxMyD
drKtYzxrCAei9WCejvFTKZuYNJ7/0XXnLp1TAh8EvbjNCj2QFYuXJovZl9U1e6sx
pvhubcBFbdXb+LPUUpivPb0sELoy9jrEgHG/DtIUUBFAJ6gVEcpSyR3F4PMy1SMC
ZLdAQ+EvM0GCCU9X5f2/Ti9iTZUDTXQ82nA+/zcq+qRMIHfXCOzxN/hjm/dtx7dP
HJuISWkqE15Kc7KRi31F4+KD9d/JLR3IrWT0a1OUp5SD1iNVufeHl4zP80pNXCZM
K1OEKubsvp7IynJFhEZ6IClDW24ZT95habKgVTbdTdm8NJhKW2+sTqDB99RuVMqN
6tczSqf6Zp28JfH3mXam6mzmtqADrWk2KkaLongTb8V0z64aP3KmDLl/OdYZKmQ3
He1VUETSPTweYRDfUIuA952IuPRkOI3mtJ58HPSJ1rYfCvfWd3BEwaBop4NIime5
0YvN1+K52KM7uIdbD7zY1x0e/wDW30Yv3+abgUMrNqiVQm3PwRuFOkfHNs1czonN
PFqVi8T0DEMipw==
-----END CERTIFICATE-----

View File

@ -13,10 +13,11 @@ IsOversea: false
Language: "Lan_Default" Language: "Lan_Default"
# 当前版本号 # 当前版本号
Version: "0.7.2" Version: "0.8.0"
# BuildCode # BuildCode
BuildCode: 5 BuildCode: 4
# 构建资源远程上传路径 # 构建资源远程上传路径
OssRemoteUploadPath: "oss://nld-pre/client_res/Build" OssRemoteUploadPath: "oss://nld-pre/client_res/Build"
AssetsEndPoint: "oss-cn-hangzhou.aliyuncs.com" AssetsEndPoint: "oss-cn-hangzhou.aliyuncs.com"
@ -41,7 +42,7 @@ Packages:
- Bilibili@1.0.0 - Bilibili@1.0.0
- ThinkingData@1.0.0 - ThinkingData@1.0.0
- TalkingData@0.0.1 - TalkingData@0.0.1
- DeviceHelper@0.0.1
# 爱加密配置 # 爱加密配置
Encryption: Encryption:

View File

@ -50,6 +50,7 @@ Packages:
- ThinkingData@1.0.0 - ThinkingData@1.0.0
- TalkingData@0.0.1 - TalkingData@0.0.1
- AIhelper@latest - AIhelper@latest
- DeviceHelper@0.0.1
# 爱加密配置 # 爱加密配置
Encryption: Encryption:

View File

@ -50,7 +50,7 @@ Packages:
- ThinkingData@1.0.0 - ThinkingData@1.0.0
- TalkingData@0.0.1 - TalkingData@0.0.1
- AIhelper@latest - AIhelper@latest
- DeviceHelper@0.0.1
# 爱加密配置 # 爱加密配置
Encryption: Encryption:

View File

@ -1,22 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public partial class PostHeader
{
/// <summary>
/// 加密算法拼接密钥
/// </summary>
static string key = "us8J-eP3jJI04_UULhGTfouIFvs3XXQKdSuf44s4ELg=";
/// <summary>
/// 头部包含密钥
/// </summary>
static string accessKey = "MmCjnmZiXAVC3RT1";
/// <summary>
/// 用于BI的url
/// </summary>
public static string PostUrl = "http://openapi.kedrgame.com/api/v1/";
}

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.phxh.dev.nld" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<queries>
<package android:name="com.eg.android.AlipayGphone" />
<package android:name="com.alipay.wallet" />
</queries>
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true" >
<activity
android:name="com.phxh.dev.nld.PayActivity">
<meta-data
android:name="unityplayer.UnityActivity"
android:value="true" />
</activity>
</application>
</manifest>

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e67627dae8fb6664abc0325a1e989564
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 42887166198c26f4a88574c85ebbf377
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 99faef125be8c3446a158d4b75c6428a
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools">
<!--定义权限-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--获取wifi状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--获取移动网络状态-->
<application>
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:theme="@style/UnityThemeSelector">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<!--Unity打包屏蔽权限弹窗-->
<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />
</activity>
</application>
</manifest>

View File

@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 3b6bcfef57fcb4719bb44b6f7b71be30
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,33 @@
-----BEGIN CERTIFICATE-----
MIIFozCCA4ugAwIBAgIDAYVKMA0GCSqGSIb3DQEBCwUAMIGAMQswCQYDVQQGEwJD
TjEQMA4GA1UECAwHQmVpamluZzEMMAoGA1UECgwDTVNBMREwDwYDVQQLDAhPQUlE
X1NESzEeMBwGA1UEAwwVY29tLmJ1bi5taWl0bWRpZC5zaWduMR4wHAYJKoZIhvcN
AQkBFg9tc2FAY2FpY3QuYWMuY24wHhcNMjUxMDI2MTQxMTEwWhcNMjYxMDI3MTQx
MTEwWjCBlDELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcM
B0JlaWppbmcxGjAYBgNVBAoMEWh1b2VyZ3Vvc2luYWx1b2RhMR4wHAYDVQQDDBVj
b20ucGh4aC5vZmZpY2lhbC5ubGQxJTAjBgkqhkiG9w0BCQEWFm1heXVhbnpoZW5n
QHBoeGhjZC5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCyGC9T
3GW4BSsvnVNqb8+HlnjJAQvTPd7H13m1f945uUsUYYMaaZuICYjb4qefZUyQgyxB
UTYfBOTpE7ccdcNoZgCp05RTng30zvkc4pjawJIkNeIC2NGlN7RquO4Ka/06LSuq
5N+bfL78E0MwZAinoxSswf/yNY5R1LJ2b3I7BnW7rVSb7KbB0Q4z5KmuJ04hPVl7
BtSdfVnvnRVTBDRm/cMgyupEl+CCGW8HUejzPHdHeHRK1rx7fuwQI+5jgMmDYRNX
ZD4AmJ0vClurQR5avN2xOuxB8HbtB+lQitsNnQCvYY1Xp4s7FtfmT6JzDNQ//vRg
XxYrOaVFfoY/ugrO+SfZtqej+mdKR3KgOaAA75t8zcJfM6WGrbPJl3xHc2bhD4kG
wRkTAcHJ7WQOIrWz85CPCfIoYh8nZlBlsCNamJJh6Pl2nAtmnfMtDuYZJo/2QK6J
/KFtywsYIekU6fiRsJaaunBf5sD9IxbvJcRRB+HRCsySKYEg8z7Xlh90fHimfUgT
0Gt44/o+nzPh7Cq9Ay6dWtMxYFx78Z1epapOJdUNpZWIET8wQHriJmbJ18TlidGR
AW85kW2ka2cr4u6Ed68JQa+nN+kbS0dDeuvOBGOsiqqCy5aeA0oz88HRWWIga02P
LTZbEs4PdYrNzHWCISjnk34KpwwxYJUn6Zpy1wIDAQABoxAwDjAMBgNVHRMBAf8E
AjAAMA0GCSqGSIb3DQEBCwUAA4ICAQCIbUS1jk++1oVVoXf7gzgmopWJIFa6hn0L
nHjQciYMAmTcKY1WmaCAZm5XRSmqmSyroinCwsE6Be7prP7vzFxL1r03EPIEbo+x
HUD83RVOgky4tBBG8+lZ7mci2jDjH/7apTq9NLz3V0vUf5iqG5cOJ1k3HsJNvrAv
n3dN7upq6lbh9RjaiY5URan3sTzvjx9085alrsIjjQ8fDCEcjhcssuVUrYpe7P4d
C/LBmaen7uMVu3h7nM0+SppyR6070J/lPlnQSM8mTCNLDdEjg1owKwLyOs5TNe3Z
FMgkyFaWDXyFV1gOp1ypI6MiUF2kT0VlBlvu1duygN9JAt6p4+QRHWwc2/uKApaz
SX5rQWnuIcxWVNrde7Smjkif9iINrfO+3DJdEZxHhhCPmi3uHikoJDuoaq+ZBJEI
nLTXo4NzWqYjmIkPkqO5vx7GwCdY4U0KyNjvMExu86FxYKLewkN7ksPF18gia79V
sg7fdUR6nnqu/qnHImGuvTIbWS342ZyJ3k6MIYF2YjYwGU6tPajFzb8rIEdbZHAb
5iZbwzUdmwWJIyK9U/+/mlFlX5evji2v3CIWC6F60FCuH9ZdQmja0Fq496VS8uYP
i5cLeFU6B39fOceoRIg53fhmK4iVcGu7awxkNb/J6yUp7bbOHdHyVH/E3XT0SgIY
W6RPsf5tIw==
-----END CERTIFICATE-----

View File

@ -4,7 +4,7 @@ Define_list:
- BI_PHXH # BI - BI_PHXH # BI
# 应用包名 # 应用包名
PackageName: "com.phxh.nlddev" PackageName: "com.phxh.official.nld"
# 是否海外渠道 # 是否海外渠道
IsOversea: false IsOversea: false
@ -43,12 +43,14 @@ TalkingData:
channel: "StableDev" # 上报渠道 channel: "StableDev" # 上报渠道
Packages: Packages:
- CrashSight@latest # - CrashSight@latest
- Poco@latest
- WXPay@1.0.0 - WXPay@1.0.0
- AliPay@0.0.1 - AliPay@0.0.1
- ThinkingData@1.0.0 - ThinkingData@1.0.0
- TalkingData@0.0.1 - TalkingData@0.0.1
- AIhelper@latest
- DeviceHelper@0.0.1
# 爱加密配置 # 爱加密配置
Encryption: Encryption:

View File

@ -0,0 +1,65 @@
战斗员ID,敌人ID,NPCID,载具ID,武器ID,视频索引,,,,
1,1,N00003,1,0,Loading/Loading_Normal,,,,
2,2,N00006,2,1,PV/First_PV,,,,
3,3,N00009,3,2,PV/Second_PV,,,,
4,4,N00010,4,3,Raffle/Raffle_Blue,,,,
5,5,N00011,8,4,Raffle/Raffle_BlueBroken,,,,
6,6,N00013,9,5,Raffle/Raffle_Red,,,,
8,7,N00014,10,6,Story/Story_1_11_0,,,,
9,8,N00015,11,7,Story/Story_1_11_1,,,,
10,9,N00016,12,8,Story/Story_1_11_2,,,,
11,10,,13,11,,,,,
12,11,,17,12,,,,,
13,12,,19,13,,,,,
14,13,,20,14,,,,,
16,14,,21,15,,,,,
22,15,,22,16,,,,,
24,16,,23,17,,,,,
25,17,,24,18,,,,,
27,18,,25,19,,,,,
28,19,,26,20,,,,,
30,20,,27,21,,,,,
31,36,,28,22,,,,,
32,37,,29,23,,,,,
33,,,30,24,,,,,
34,,,31,25,,,,,
35,,,32,26,,,,,
51,,,35,27,,,,,
52,,,36,28,,,,,
53,,,37,29,,,,,
54,,,38,30,,,,,
61,,,39,31,,,,,
62,,,40,32,,,,,
63,,,41,33,,,,,
64,,,42,34,,,,,
78,,,48,35,,,,,
81,,,50,36,,,,,
83,,,53,37,,,,,
84,,,54,38,,,,,
87,,,56,39,,,,,
93,,,57,40,,,,,
94,,,58,41,,,,,
96,,,61,42,,,,,
98,,,62,43,,,,,
103,,,63,44,,,,,
107,,,64,45,,,,,
,,,65,46,,,,,
,,,66,48,,,,,
,,,80,49,,,,,
,,,82,54,,,,,
,,,,57,,,,,
,,,,58,,,,,
,,,,59,,,,,
,,,,60,,,,,
,,,,61,,,,,
,,,,62,,,,,
,,,,63,,,,,
,,,,64,,,,,
,,,,65,,,,,
,,,,66,,,,,
,,,,67,,,,,
,,,,68,,,,,
,,,,71,,,,,
,,,,72,,,,,
,,,,73,,,,,
,,,,74,,,,,
1 战斗员ID 敌人ID NPCID 载具ID 武器ID 视频索引
2 1 1 N00003 1 0 Loading/Loading_Normal
3 2 2 N00006 2 1 PV/First_PV
4 3 3 N00009 3 2 PV/Second_PV
5 4 4 N00010 4 3 Raffle/Raffle_Blue
6 5 5 N00011 8 4 Raffle/Raffle_BlueBroken
7 6 6 N00013 9 5 Raffle/Raffle_Red
8 8 7 N00014 10 6 Story/Story_1_11_0
9 9 8 N00015 11 7 Story/Story_1_11_1
10 10 9 N00016 12 8 Story/Story_1_11_2
11 11 10 13 11
12 12 11 17 12
13 13 12 19 13
14 14 13 20 14
15 16 14 21 15
16 22 15 22 16
17 24 16 23 17
18 25 17 24 18
19 27 18 25 19
20 28 19 26 20
21 30 20 27 21
22 31 36 28 22
23 32 37 29 23
24 33 30 24
25 34 31 25
26 35 32 26
27 51 35 27
28 52 36 28
29 53 37 29
30 54 38 30
31 61 39 31
32 62 40 32
33 63 41 33
34 64 42 34
35 78 48 35
36 81 50 36
37 83 53 37
38 84 54 38
39 87 56 39
40 93 57 40
41 94 58 41
42 96 61 42
43 98 62 43
44 103 63 44
45 107 64 45
46 65 46
47 66 48
48 80 49
49 82 54
50 57
51 58
52 59
53 60
54 61
55 62
56 63
57 64
58 65
59 66
60 67
61 68
62 71
63 72
64 73
65 74

View File

@ -8,15 +8,19 @@ def CHANNEL_PARAM = params.Channel
def DEBUGBUILD_PARAM = params.DebugBuild def DEBUGBUILD_PARAM = params.DebugBuild
def HOTUPDATE_PARAM = params.Enable_Hot_Update def HOTUPDATE_PARAM = params.Enable_Hot_Update
def AAB_PARAM = params.AAB def AAB_PARAM = params.AAB
def OBFUZ = params.Obfuz
def DEV_PARAM = IsDev() def DEV_PARAM = IsDev()
def ANDROIDKEYSTORE = "/Users/mayuanzheng/key/phxh_android.keystore" def ANDROIDKEYSTORE = "/Users/mayuanzheng/key/phxh_android.keystore"
def ANDROIDKEYALIAS = "avery" def ANDROIDKEYALIAS = "avery"
def UPLOAD_SYMBOL = params.UploadSymbol
// Jenkins // Jenkins
def ARTIFACT_URL = "http://${env.PHXH_BUILDER_IP_ADDRESS}:8080/job/${env.JOB_NAME}/" def ARTIFACT_URL = "http://${env.PHXH_BUILDER_IP_ADDRESS}:8080/job/${env.JOB_NAME}/"
// def VERSION_PARAM = "尚未获取" //
def VERSION_PARAM def OSS_UPLOAD_PATH_PARAM //
def ASSETS_END_POINT_PARAM // Assets endPoint
// //
def BUILD_PATH def BUILD_PATH
// //
@ -25,6 +29,12 @@ def log_path
def SendMessageToWechat(message){ def SendMessageToWechat(message){
if (!message) { if (!message) {
return } return }
//
echo "[DEBUG] SendMessageToWechat called"
echo "[DEBUG] Message length: ${message.length()}"
echo "[DEBUG] Message content: ${message}"
echo "[DEBUG] Message class: ${message.getClass().getName()}"
def INNER_ROBOT="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=3c92758c-1128-4931-ac8d-f19669d7befe" def INNER_ROBOT="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=3c92758c-1128-4931-ac8d-f19669d7befe"
sh "chmod +x $WORKSPACE/Tool/build_tools/send_wechat_message.sh" sh "chmod +x $WORKSPACE/Tool/build_tools/send_wechat_message.sh"
sh "$WORKSPACE/Tool/build_tools/send_wechat_message.sh '${INNER_ROBOT}' '@all' '${message}'" sh "$WORKSPACE/Tool/build_tools/send_wechat_message.sh '${INNER_ROBOT}' '@all' '${message}'"
@ -54,13 +64,17 @@ def GetRemote(){
else if('Official' == params.Channel) else if('Official' == params.Channel)
return 'dev' return 'dev'
else if('TapTap' == params.Channel) else if('TapTap' == params.Channel)
return 'tap_release' return 'release/tap'
else if('ReleaseTest' == params.Channel) else if('ReleaseTest' == params.Channel)
return 'dev' return 'dev'
else if('Test' == params.Channel) else if('Test' == params.Channel)
return 'test' return 'test'
else if('Stable_Dev' == params.Channel)
return "release/stable_dev"
else if('Bilibili' == params.Channel)
return "release/bilibili"
else else
return 'stable_dev'; return 'dev';
} }
def IsDev() { def IsDev() {
@ -68,68 +82,194 @@ def IsDev() {
return true; return true;
else if('ReleaseTest' == params.Channel) else if('ReleaseTest' == params.Channel)
return true; return true;
else if('StableDev' == params.Channel) // Stable_Dev 使 release Dev
return true; // else if('Stable_Dev' == params.Channel)
// return true;
else if('Test' == params.Channel) else if('Test' == params.Channel)
return true; return true;
else else
return false; return false;
} }
def CheckRemoteBranchExists(repoUrl, branchName) {
def result = sh(
script: "git ls-remote --heads ${repoUrl} refs/heads/${branchName}",
returnStdout: true
).trim()
if (result == '') {
echo "警告: 远程分支 ${branchName} 不存在于 ${repoUrl}"
return false
}
echo "远程分支 ${branchName} 存在"
return true
}
pipeline { pipeline {
agent any agent any
stages { stages {
stage('拉最新工程') { stage('拉最新工程') {
steps { steps {
script { script {
def currentPath = sh(script: 'pwd', returnStdout: true).trim() try {
echo "cd ${currentPath}" def currentPath = sh(script: 'pwd', returnStdout: true).trim()
echo "cd ${currentPath}"
//
def gitDirExists = sh(script: '[ -d ".git" ] && echo "true" || echo "false"', returnStdout: true).trim() // 1.
def scriptPathExists = fileExists("${WORKSPACE}/Tool/build_tools/git_revert_modules_modification.sh") def gitDirExists = sh(script: '[ -d ".git" ] && echo "true" || echo "false"', returnStdout: true).trim()
if (gitDirExists == 'true' && scriptPathExists) def scriptPathExists = fileExists("${WORKSPACE}/Tool/build_tools/git_revert_modules_modification.sh")
{ if (gitDirExists == 'true' && scriptPathExists) {
sh "chmod +x $WORKSPACE/Tool/build_tools/git_revert_modules_modification.sh" sh "chmod +x $WORKSPACE/Tool/build_tools/git_revert_modules_modification.sh"
sh "$WORKSPACE/Tool/build_tools/git_revert_modules_modification.sh $WORKSPACE" sh "$WORKSPACE/Tool/build_tools/git_revert_modules_modification.sh $WORKSPACE"
}
// 2.
def repoUrl = 'http://1.14.122.170:3000/PHXH/NLDClient.git'
def remote = GetRemote();
echo "[DEBUG] GetRemote() 返回值: [${remote}]"
echo "获取到分支名字:${remote}"
//
if (!CheckRemoteBranchExists(repoUrl, remote)) {
echo "[DEBUG] 分支不存在,准备发送通知"
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】远程分支不存在,使用默认分支 stable_dev"
SendMessageToWechat(message)
remote = 'stable_dev' // 退
}
echo "拉取分支:${remote}"
checkout scmGit(
branches: [[name: "*/${remote}"]],
extensions: [
checkoutOption(60),
lfs(),
cloneOption(noTags: false, reference: '', shallow: false, timeout: 120),
submodule(recursiveSubmodules: true, reference: '', timeout: 1200)
],
userRemoteConfigs: [[url: repoUrl]]
)
// 3. GamePlay_Dll
def gameplayDllPath = "${WORKSPACE}/ProjectNLD/Assets/Code/Scripts/GamePlay_Dll"
sh "if [ -d '${gameplayDllPath}' ]; then rm -rf '${gameplayDllPath}'; fi"
// 4. GamePlay
def gameplayTargetPath = "${WORKSPACE}/ProjectNLD/Assets/Code/Scripts/GamePlay"
def gameplayUrl = "http://1.14.122.170:3000/PHXH/GamePlay.git"
def branch = GetRemote();
echo "[DEBUG] GamePlay GetRemote() 返回值: [${branch}]"
//
if (!CheckRemoteBranchExists(gameplayUrl, branch)) {
echo "[DEBUG] GamePlay分支不存在准备发送通知"
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】GamePlay远程分支不存在,使用默认分支 stable_dev"
SendMessageToWechat(message)
branch = 'stable_dev' // 退
}
sh "chmod +x ${WORKSPACE}/Tool/build_tools/git_pull_gameplay.sh"
sh "$WORKSPACE/Tool/build_tools/git_pull_gameplay.sh ${gameplayTargetPath} ${gameplayUrl} ${branch}"
} catch (err) {
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】拉最新工程失败"
SendMessageToWechat(message)
error("Failure of the '拉最新工程' stage")
} }
def remote = GetRemote();
echo "拉取分支:${remote}"
checkout scmGit(branches: [[name: "*/${remote}"]],
extensions: [checkoutOption(60), lfs(), cloneOption(noTags: false, reference: '', shallow: false, timeout: 120), submodule(recursiveSubmodules: true, reference: '', timeout: 1200)],
userRemoteConfigs: [[url: 'http://1.14.122.170:3000/PHXH/NLDClient.git']])
} }
} }
} }
stage('获取项目配置') { stage('获取项目配置') {
steps { steps {
// script {
sh "chmod +x $WORKSPACE/Tool/build_tools/copy_env.sh" try {
sh "$WORKSPACE/Tool/build_tools/copy_env.sh $WORKSPACE/Tool/build_env" //
sh "chmod +x $WORKSPACE/Tool/build_tools/copy_env.sh"
sh "$WORKSPACE/Tool/build_tools/copy_env.sh $WORKSPACE/Tool/build_env"
// //
echo "copy local env file to $WORKSPACE" echo "copy local env file to $WORKSPACE"
sh "cp /Users/mayuanzheng/Builds/local_env.sh $WORKSPACE/Tool/build_tools/" sh "cp /Users/mayuanzheng/Builds/local_env.sh $WORKSPACE/Tool/build_tools/"
} catch (err) {
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】获取项目配置失败"
SendMessageToWechat(message)
error("Failure of the '获取项目配置' stage")
}
}
}
}
stage('修改渠道文件夹') {
steps {
script {
try {
// pyyaml
sh "pip3 install pyyaml --user"
// python
echo "根据 [${params.Channel}] 渠道修改文件夹"
def channelPath = "${WORKSPACE}/Tool/Channels/${CHANNEL_PARAM}"
def sdkPath = "${WORKSPACE}/Tool/sdk_packages"
echo "Channel Path: ${channelPath}"
echo "SDK Path: ${sdkPath}"
// python: Tool/py_tools/PreHandle.py <sdk_path> <channel_path>
sh "chmod +x $WORKSPACE/Tool/py_tools/PreHandle.py"
// 使 returnStatus 退
def pythonResult = sh(script: "python3 $WORKSPACE/Tool/py_tools/PreHandle.py ${sdkPath} ${channelPath}", returnStatus: true)
if (pythonResult != 0) {
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】修改渠道文件夹失败: pythonResult=${pythonResult}"
SendMessageToWechat(message)
error("Failure of the '修改渠道文件夹' stage")
}
} catch (err) {
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】根据渠道修改工程失败"
SendMessageToWechat(message)
error("Failure of the '修改渠道文件夹' stage")
}
}
} }
} }
stage('根据渠道修改工程') { stage('根据渠道修改工程') {
steps { steps {
echo "根据 [${params.Channel}] 渠道修改工程" script {
sh "chmod +x $WORKSPACE/Tool/build_tools/modify_project_by_channel.sh" try {
sh "$WORKSPACE/Tool/build_tools/modify_project_by_channel.sh $WORKSPACE ${CHANNEL_PARAM}" echo "根据 [${params.Channel}] 渠道修改工程"
sh "chmod +x $WORKSPACE/Tool/build_tools/modify_project_by_channel.sh"
sh "$WORKSPACE/Tool/build_tools/modify_project_by_channel.sh $WORKSPACE ${CHANNEL_PARAM}"
} catch (err) {
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】根据渠道修改工程失败"
SendMessageToWechat(message)
error("Failure of the '根据渠道修改工程' stage")
}
}
} }
} }
stage('获取打包版本') { stage('根据渠道获取相关参数') {
steps { steps {
script { script {
echo "获取 [${params.Channel}] 渠道版本" try {
def playersettings = "$WORKSPACE/Tool/Channels/$CHANNEL_PARAM/ChannelSetting.txt" echo "根据 [${params.Channel}] 渠道获取相关参数"
sh "chmod +x $WORKSPACE/Tool/build_tools/get_build_version.sh" def playersettings = "${WORKSPACE}/Tool/Channels/${CHANNEL_PARAM}/ChannelSetting.yaml"
VERSION_PARAM = sh(script: "$WORKSPACE/Tool/build_tools/get_build_version.sh $playersettings", returnStdout: true).trim() // 1. YAML Groovy Map
BUILD_PATH = "Builds/$CHANNEL_PARAM/$PLATFORM_PARAM/$VERSION_PARAM" def cfg = readYaml(file: playersettings)
log_path="$BUILD_PATH/build.log" // 2. YAML
echo "获取到的版本是 $VERSION_PARAM" VERSION_PARAM = (cfg?.Version ?: '').trim()
OSS_UPLOAD_PATH_PARAM = (cfg?.OssRemoteUploadPath ?: '').trim()
ASSETS_END_POINT_PARAM = (cfg?.AssetsEndPoint ?: '').trim()
// 3.
BUILD_PATH = "Builds/$CHANNEL_PARAM/$PLATFORM_PARAM/$VERSION_PARAM"
log_path="$BUILD_PATH/build.log"
//
echo "[DEBUG] VERSION_PARAM: [${VERSION_PARAM}]"
echo "[DEBUG] OSS_UPLOAD_PATH_PARAM: [${OSS_UPLOAD_PATH_PARAM}]"
echo "[DEBUG] ASSETS_END_POINT_PARAM: [${ASSETS_END_POINT_PARAM}]"
echo "[DEBUG] CHANNEL_PARAM: [${CHANNEL_PARAM}]"
echo "[DEBUG] PLATFORM_PARAM: [${PLATFORM_PARAM}]"
echo "获取到的版本是 ${VERSION_PARAM}, 获取到的上传地址是 ${OSS_UPLOAD_PATH_PARAM}获取到的assets-oss-endpoint是 ${ASSETS_END_POINT_PARAM}"
} catch (err) {
echo "[DEBUG] 捕获到异常: ${err}"
echo "[DEBUG] 异常类型: ${err.getClass().getName()}"
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】根据渠道获取相关参数失败"
SendMessageToWechat(message)
error("Failure of the '根据渠道获取相关参数' stage")
}
} }
} }
} }
@ -142,41 +282,157 @@ pipeline {
if(params.Debug_AllLocal == true) if(params.Debug_AllLocal == true)
PROFILE_PARAM="AllLocal" PROFILE_PARAM="AllLocal"
def parse_log = "../../$log_path"
if(params.Build_InitApp == false){ if(params.Build_InitApp == false){
build_result=sh(script: "$WORKSPACE/Tool/build_tools/hot_update.sh ${VERSION_PARAM} ${PLATFORM_PARAM} ${PROFILE_PARAM} ${CHANNEL_PARAM} ${HOTUPDATE_PARAM} ${ANDROIDKEYSTORE} ${ANDROIDKEYALIAS}", returnStatus: true, returnStdout: false) build_result=sh(script: "$WORKSPACE/Tool/build_tools/hot_update.sh ${VERSION_PARAM} ${PLATFORM_PARAM} ${PROFILE_PARAM} ${CHANNEL_PARAM} ${HOTUPDATE_PARAM} ${DEBUGBUILD_PARAM} ${ANDROIDKEYSTORE} ${ANDROIDKEYALIAS} ${OBFUZ}", returnStatus: true, returnStdout: false)
log_path="$BUILD_PATH/UpdatePreviousBuild.log" log_path="$BUILD_PATH/UpdatePreviousBuild.log"
} }
else else
build_result=sh(script: "$WORKSPACE/Tool/build_tools/build_unity.sh ${VERSION_PARAM} ${PLATFORM_PARAM} ${PROFILE_PARAM} ${CHANNEL_PARAM} ${HOTUPDATE_PARAM} ${DEBUGBUILD_PARAM} ${AAB_PARAM} ${DEV_PARAM} ${ANDROIDKEYSTORE} ${ANDROIDKEYALIAS}", returnStatus: true, returnStdout: false) build_result=sh(script: "$WORKSPACE/Tool/build_tools/build_unity.sh ${VERSION_PARAM} ${PLATFORM_PARAM} ${PROFILE_PARAM} ${CHANNEL_PARAM} ${HOTUPDATE_PARAM} ${DEBUGBUILD_PARAM} ${AAB_PARAM} ${DEV_PARAM} ${ANDROIDKEYSTORE} ${ANDROIDKEYALIAS} ${OBFUZ} ${UPLOAD_SYMBOL}", returnStatus: true, returnStdout: false)
// //
if(build_result != 0) if(build_result != 0)
{ {
// //
archiveArtifacts artifacts: "$log_path" , followSymlinks: false archiveArtifacts artifacts: "$log_path" , followSymlinks: false
def parse_log = "../../$log_path"
ParseBuildLogError(parse_log) ParseBuildLogError(parse_log)
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】构建失败" def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】构建失败"
SendMessageToWechat(message) SendMessageToWechat(message)
error("Failure of the '打包' stage") error("Failure of the '打包' stage")
} }
// Build Finished, Result: Failure.
else{
sh "chmod +x $WORKSPACE/Tool/build_tools/check_unity_build_result.sh"
def check_result = sh(script: "sh $WORKSPACE/Tool/build_tools/check_unity_build_result.sh ${parse_log}", returnStatus: true)
if (check_result != 0) {
//
archiveArtifacts artifacts: "$log_path" , followSymlinks: false
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】构建失败 日志捕捉到 Build Finished, Result: Failure."
SendMessageToWechat(message)
error("Failure of the '打包' stage")
}
}
}
}
}
stage('加密应用') {
steps {
script {
//
echo "params.Build_InitApp: ${params.Build_InitApp}"
echo "WORKSPACE: ${WORKSPACE}"
if (params.Build_InitApp == true) {
try {
// CHANNEL_PARAM
def actualChannel = CHANNEL_PARAM ?: "Dev"
echo "Actual channel: ${actualChannel}"
// YAML
def playersettings = "${WORKSPACE}/Tool/Channels/${actualChannel}/ChannelSetting.yaml"
def fallbackPlayersettings = "d:/UnityProjects/NLDClient/Tool/Channels/${actualChannel}/ChannelSetting.yaml"
// YAML
def finalPlayersettings
if (fileExists(playersettings)) {
finalPlayersettings = playersettings
} else if (fileExists(fallbackPlayersettings)) {
finalPlayersettings = fallbackPlayersettings
} else {
echo "Warning: Both YAML paths not found. Using default: ${playersettings}"
finalPlayersettings = playersettings
}
//
echo "playersettings path: ${finalPlayersettings}"
echo "File exists: ${fileExists(finalPlayersettings)}"
// YAML
def cfg
try {
cfg = readYaml(file: finalPlayersettings)
echo "YAML content: ${cfg}"
} catch (yamlErr) {
echo "Error reading YAML: ${yamlErr.getMessage()}"
// 使YAML
def yamlContent = readFile(finalPlayersettings)
echo "Raw YAML content: ${yamlContent}"
error "Failed to parse YAML file"
}
//
def encryptConfig = cfg?.Encryption
echo "encryptConfig: ${encryptConfig}"
if (encryptConfig) {
def apiUrl = (encryptConfig?.ApiUrl ?: '').trim()
def strategyName = (encryptConfig?.StrategyName ?: '').trim()
def username = (encryptConfig?.Username ?: '').trim()
def password = (encryptConfig?.Password ?: '').trim()
def toolPath = (encryptConfig?.ToolPath ?: '').trim()
def needSign = (encryptConfig?.NeedSign ?: true)
def signName = (encryptConfig?.SignName ?: '').trim()
def signVersion = (encryptConfig?.SignVersion ?: 4)
def retryCount = (encryptConfig?.RetryCount ?: 3)
// APK
def apkPath = "$WORKSPACE/Builds/$CHANNEL_PARAM/$PLATFORM_PARAM/$VERSION_PARAM/$APK_NAME"
def outputDir = "$WORKSPACE/Builds/$CHANNEL_PARAM/$PLATFORM_PARAM/$VERSION_PARAM"
// WORKSPACE
toolPath = toolPath.replace('${WORKSPACE}', WORKSPACE)
//
def encryptCmd = "java -jar '${toolPath}' -t apk -u '${apiUrl}' -r '${username}' -w '${password}' -k '${apkPath}' -s '${strategyName}' -d '${outputDir}' -n '${APK_NAME}' -y ${retryCount}"
//
if (needSign) {
encryptCmd += " -i true -g '${signName}' -v ${signVersion}"
}
echo "开始加密应用..."
echo "APK路径: ${apkPath}"
echo "加密策略: ${strategyName}"
echo "执行命令: ${encryptCmd}"
//
def encryptResult = sh(script: encryptCmd, returnStatus: true, returnStdout: false)
if (encryptResult != 0) {
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】应用加密失败"
SendMessageToWechat(message)
error("Failure of the '加密应用' stage")
} else {
echo "应用加密成功加密后的APK已覆盖原APK。"
}
} else {
echo "警告:未在渠道配置中找到加密相关配置,跳过加密步骤。"
}
} catch (err) {
echo "[DEBUG] 加密应用异常"
echo "[DEBUG] 异常信息: ${err}"
echo "[DEBUG] 异常类型: ${err.getClass().getName()}"
echo "[DEBUG] CHANNEL_PARAM: [${CHANNEL_PARAM}]"
echo "[DEBUG] VERSION_PARAM: [${VERSION_PARAM}]"
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】应用加密失败"
SendMessageToWechat(message)
error("Failure of the '加密应用' stage")
}
} else {
echo "增量更新模式,跳过加密步骤。"
}
} }
} }
} }
stage('上传资源') { stage('上传资源') {
steps { steps {
script { script {
sh "chmod +x $WORKSPACE/Tool/build_tools/upload_oss_dev.sh"
sh "chmod +x $WORKSPACE/Tool/build_tools/upload_oss.sh"
def asset_path="$WORKSPACE/ProjectNLD/ServerData/${PLATFORM_PARAM}" def asset_path="$WORKSPACE/ProjectNLD/ServerData/${PLATFORM_PARAM}"
def upload_path="${CHANNEL_PARAM}/${PLATFORM_PARAM}/${VERSION_PARAM}" def upload_path="${OSS_UPLOAD_PATH_PARAM}/${CHANNEL_PARAM}/${PLATFORM_PARAM}/${VERSION_PARAM}"
def upload_result
if(DEV_PARAM) sh "chmod +x $WORKSPACE/Tool/build_tools/upload_oss.sh"
upload_result=sh(script: "$WORKSPACE/Tool/build_tools/upload_oss_dev.sh ${asset_path} ${upload_path}", returnStatus: true, returnStdout: false) def upload_result=0
else upload_result = sh(script: "$WORKSPACE/Tool/build_tools/upload_oss.sh ${asset_path} ${upload_path} ${ASSETS_END_POINT_PARAM}", returnStatus: true, returnStdout: false)
upload_result=sh(script: "$WORKSPACE/Tool/build_tools/upload_oss.sh ${asset_path} ${upload_path}", returnStatus: true, returnStdout: false)
if(upload_result != 0) if(upload_result != 0)
{ {
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】上传资源失败" def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】上传资源失败"
@ -192,26 +448,24 @@ pipeline {
// //
if (params.Build_InitApp == true){ if (params.Build_InitApp == true){
def apk_path="$WORKSPACE/Builds/$CHANNEL_PARAM/$PLATFORM_PARAM/$VERSION_PARAM/$APK_NAME" def apk_path="$WORKSPACE/Builds/$CHANNEL_PARAM/$PLATFORM_PARAM/$VERSION_PARAM/$APK_NAME"
def upload_path="${CHANNEL_PARAM}/${PLATFORM_PARAM}" def upload_path="${OSS_UPLOAD_PATH_PARAM}/${CHANNEL_PARAM}/${PLATFORM_PARAM}/"
def upload_path_with_version="${CHANNEL_PARAM}/${PLATFORM_PARAM}/${VERSION_PARAM}" def upload_path_with_version="${OSS_UPLOAD_PATH_PARAM}/${CHANNEL_PARAM}/${PLATFORM_PARAM}/${VERSION_PARAM}/"
def upload_result=0 def upload_result=0
def upload_result_with_version=0 def upload_result_with_version=0
if(DEV_PARAM)
{ if(DEV_PARAM) {
upload_result=sh(script: "$WORKSPACE/Tool/build_tools/upload_oss_dev.sh ${apk_path} ${upload_path}", returnStatus: true, returnStdout: false) upload_result=sh(script: "$WORKSPACE/Tool/build_tools/upload_oss_dev.sh ${apk_path} ${upload_path} ${ASSETS_END_POINT_PARAM}", returnStatus: true, returnStdout: false)
upload_result_with_version=sh(script: "$WORKSPACE/Tool/build_tools/upload_oss_dev.sh ${apk_path} ${upload_path_with_version}", returnStatus: true, returnStdout: false) upload_result_with_version=sh(script: "$WORKSPACE/Tool/build_tools/upload_oss_dev.sh ${apk_path} ${upload_path_with_version} ${ASSETS_END_POINT_PARAM}", returnStatus: true, returnStdout: false)
} } else {
else upload_result=sh(script: "$WORKSPACE/Tool/build_tools/upload_oss.sh ${apk_path} ${upload_path} ${ASSETS_END_POINT_PARAM}", returnStatus: true, returnStdout: false)
{ upload_result_with_version=sh(script: "$WORKSPACE/Tool/build_tools/upload_oss.sh ${apk_path} ${upload_path_with_version} ${ASSETS_END_POINT_PARAM}", returnStatus: true, returnStdout: false)
upload_result=sh(script: "$WORKSPACE/Tool/build_tools/upload_oss.sh ${apk_path} ${upload_path}", returnStatus: true, returnStdout: false)
upload_result_with_version=sh(script: "$WORKSPACE/Tool/build_tools/upload_oss.sh ${apk_path} ${upload_path_with_version}", returnStatus: true, returnStdout: false)
} }
if(upload_result != 0 || upload_result_with_version != 0) if(upload_result != 0 || upload_result_with_version != 0)
{ {
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】上传APK失败" def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】上传APK失败"
SendMessageToWechat(message) SendMessageToWechat(message)
error("Failure of the '上传apk' stage") error("Failure of the '上传apk' stage")
} }
} }
} }
} }
@ -219,17 +473,35 @@ pipeline {
stage('上传符号表') { stage('上传符号表') {
steps { steps {
script { script {
// if(UPLOAD_SYMBOL == true)
sh "chmod +x $WORKSPACE/Tool/build_tools/upload_symbol_file.sh" {
if (params.Build_InitApp == true){ //
def playersettings = "$WORKSPACE/Tool/Channels/$CHANNEL_PARAM/ChannelSetting.txt" sh "chmod +x $WORKSPACE/Tool/build_tools/upload_symbol_file.sh"
def symbol_path="$WORKSPACE/Builds/$CHANNEL_PARAM/$PLATFORM_PARAM/$VERSION_PARAM" sh "chmod +x $WORKSPACE/Tool/build_tools/upload_symbol_file_firebase.sh"
def upload_result=sh(script: "$WORKSPACE/Tool/build_tools/upload_symbol_file.sh ${VERSION_PARAM} ${PLATFORM_PARAM} ${symbol_path} ${playersettings}", returnStatus: true, returnStdout: false) if (params.Build_InitApp == true){
if(upload_result != 0) def playersettings = "${WORKSPACE}/Tool/Channels/${CHANNEL_PARAM}/ChannelSetting.yaml"
{ def cfg = readYaml(file: playersettings)
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】上传符号表异常" def symbol_path="$WORKSPACE/Builds/$CHANNEL_PARAM/$PLATFORM_PARAM/$VERSION_PARAM"
SendMessageToWechat(message) def upload_result=0
} if('GoogleDev' == params.Channel)
{
def FIREBASE_APP_ID = (cfg?.FIREBASE_APP_ID ?: '').trim()
echo "获取到的Firebase App ID ${FIREBASE_APP_ID}"
upload_result = sh(script: "$WORKSPACE/Tool/build_tools/upload_symbol_file_firebase.sh ${VERSION_PARAM} ${symbol_path} ${FIREBASE_APP_ID}", returnStatus: true, returnStdout: false)
}
else
{
def crashsightConfig = cfg?."CrashSight_${PLATFORM_PARAM}"
def crashsightId = (crashsightConfig?.id ?: '').trim()
def crashsightKey = (crashsightConfig?.key ?: '').trim()
upload_result = sh(script: "$WORKSPACE/Tool/build_tools/upload_symbol_file.sh ${VERSION_PARAM} ${PLATFORM_PARAM} ${symbol_path} ${crashsightId} ${crashsightKey}", returnStatus: true, returnStdout: false)
}
if(upload_result != 0)
{
def message = "【${PLATFORM_PARAM}】【${VERSION_PARAM}】【Release】【${CHANNEL_PARAM}】上传符号表异常"
SendMessageToWechat(message)
}
}
} }
} }
} }