6
6
import javafx .scene .control .Label ;
7
7
import javafx .scene .control .TextField ;
8
8
import javafx .scene .layout .AnchorPane ;
9
- import javafx .stage .DirectoryChooser ;
10
9
import javafx .stage .FileChooser ;
11
10
import javafx .stage .Stage ;
12
11
13
12
import java .io .File ;
14
- import java .io .FileReader ;
15
- import java .io .IOException ;
16
13
import java .net .URL ;
17
- import java .nio .file .FileVisitOption ;
18
14
import java .util .ResourceBundle ;
19
15
20
16
public class Controller implements Initializable {
@@ -115,7 +111,7 @@ public void openApk(ActionEvent actionEvent) {
115
111
if (Utils .isEmpty (msg )) {
116
112
tvMsg .setText ("Apk尚未签名,可以开始签名!" );
117
113
} else {
118
- tvMsg .setText ("Apk已签名,可以尝试重新签名!\n " + msg );
114
+ tvMsg .setText ("Apk已签名,可以尝试重新签名!\n " + msg );
119
115
}
120
116
}
121
117
}
@@ -138,26 +134,52 @@ public void signOld(ActionEvent actionEvent) {
138
134
tvMsg .setText ("旧v1签名成功!\n " + msg );
139
135
} else {
140
136
tvMsg .setText ("旧v1签名失败!可能存在的原因:\n 1.密钥别名or密码配置错误!\n 2.已使用新v1&v2签名过的Apk,无法使用旧v1签名重新签名。\n " + msg );
137
+ File signApk = new File (signPath );
138
+ if (signApk .exists ()) {
139
+ signApk .delete ();
140
+ }
141
141
}
142
142
}
143
143
}
144
144
145
145
public void signNew (ActionEvent actionEvent ) {
146
146
if (checkStatus ()) {
147
+ //对齐
148
+ String alignapk = new File (tfApk .getText ()).getParent () + "\\ sign_align-" + System .currentTimeMillis () + ".apk" ;
149
+ String align = "zipalign -v 4 " + tfApk .getText () + " " + alignapk ;
150
+ String alignMsg = Utils .exeCmd (align );
151
+ if (new File (alignapk ).exists ()) {
152
+ tvMsg .setText ("新v1&v2对齐成功!\n " + alignMsg );
153
+ } else {
154
+ tvMsg .setText ("新v1&v2对齐失败!\n " + alignMsg );
155
+ return ;
156
+ }
147
157
String signPath = new File (tfApk .getText ()).getParent () + "\\ sign_new-" + System .currentTimeMillis () + ".apk" ;
148
158
String cmd = "java -jar apksigner.jar sign --ks " + KeyConfig .getInstance ().getPath ()
149
159
+ " --ks-key-alias " + KeyConfig .getInstance ().getKeyAlias ()
150
160
+ " --ks-pass pass:" + KeyConfig .getInstance ().getStorePassword ()
151
161
+ " --key-pass pass:" + KeyConfig .getInstance ().getKeyPassword ()
152
162
+ " --out "
153
163
+ signPath + " "
154
- + tfApk . getText () ;
164
+ + alignapk ;
155
165
String msg = Utils .exeCmd (cmd );
156
166
if (new File (signPath ).exists ()) {
157
167
tfSign .setText (signPath );
158
168
tvMsg .setText ("新v1&v2签名成功!\n " + msg );
169
+ File alignapkFile = new File (alignapk );
170
+ if (alignapkFile .exists ()) {
171
+ alignapkFile .delete ();
172
+ }
159
173
} else {
160
174
tvMsg .setText ("新v1&v2签名失败!可能存在的原因:\n 密钥别名or密码配置错误!\n " + msg );
175
+ File signApk = new File (signPath );
176
+ if (signApk .exists ()) {
177
+ signApk .delete ();
178
+ }
179
+ }
180
+ File alignapkFile = new File (alignapk );
181
+ if (alignapkFile .exists ()) {
182
+ alignapkFile .delete ();
161
183
}
162
184
}
163
185
}
0 commit comments