zcw-shared 1.42.0 → 1.43.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/functions/android/configureAppIcon.d.ts +17 -0
- package/dist/functions/android/configureAppIcon.js +106 -0
- package/dist/functions/android/configureAppIcon.js.map +1 -0
- package/dist/functions/android/configureLaunchScreen.d.ts +5 -1
- package/dist/functions/android/configureLaunchScreen.js +115 -20
- package/dist/functions/android/configureLaunchScreen.js.map +1 -1
- package/dist/functions/android/modifyGradle.d.ts +1 -0
- package/dist/functions/android/modifyGradle.js +5 -0
- package/dist/functions/android/modifyGradle.js.map +1 -1
- package/dist/functions/android/permission.d.ts +17 -3
- package/dist/functions/android/permission.js +26 -6
- package/dist/functions/android/permission.js.map +1 -1
- package/dist/functions/ios/configureAppIcon.d.ts +17 -0
- package/dist/functions/ios/configureAppIcon.js +149 -0
- package/dist/functions/ios/configureAppIcon.js.map +1 -0
- package/dist/functions/ios/configureLaunchScreen.js +70 -57
- package/dist/functions/ios/configureLaunchScreen.js.map +1 -1
- package/dist/functions/ios/configurePermissions.d.ts +19 -0
- package/dist/functions/ios/configurePermissions.js +120 -0
- package/dist/functions/ios/configurePermissions.js.map +1 -0
- package/dist/functions/uniapp/app-plus/buildAndroidApp.d.ts +2 -1
- package/dist/functions/uniapp/app-plus/buildAndroidApp.js +100 -34
- package/dist/functions/uniapp/app-plus/buildAndroidApp.js.map +1 -1
- package/dist/functions/uniapp/app-plus/buildAndroidPlugin.js +42 -34
- package/dist/functions/uniapp/app-plus/buildAndroidPlugin.js.map +1 -1
- package/dist/functions/uniapp/app-plus/buildIOSApp.js +92 -28
- package/dist/functions/uniapp/app-plus/buildIOSApp.js.map +1 -1
- package/dist/functions/uniapp/app-plus/buildIOSPlugin.js +50 -27
- package/dist/functions/uniapp/app-plus/buildIOSPlugin.js.map +1 -1
- package/package.json +4 -1
- package/types/uniapp-android-build.d.ts +18 -0
- package/types/uniapp-ios-build.d.ts +18 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FileSystem, Path, BufferConstructor } from '../../../references/node.d';
|
|
2
|
+
import type { Sharp } from '../../../references/sharp.d';
|
|
3
|
+
export interface ConfigureAppIconAndroidDeps {
|
|
4
|
+
existsSync: FileSystem['existsSync'];
|
|
5
|
+
readFileSync: FileSystem['readFileSync'];
|
|
6
|
+
writeFileSync: FileSystem['writeFileSync'];
|
|
7
|
+
mkdirSync: FileSystem['mkdirSync'];
|
|
8
|
+
join: Path['join'];
|
|
9
|
+
sharp: Sharp;
|
|
10
|
+
Buffer: BufferConstructor;
|
|
11
|
+
}
|
|
12
|
+
export interface ConfigureAppIconAndroidResult {
|
|
13
|
+
success: boolean;
|
|
14
|
+
error?: string;
|
|
15
|
+
logs: string[];
|
|
16
|
+
}
|
|
17
|
+
export declare function configureAppIconAndroid(imagePath: string, projectPath: string, moduleDir: string, deps: ConfigureAppIconAndroidDeps): Promise<ConfigureAppIconAndroidResult>;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
const ANDROID_ICON_SIZES = [
|
|
2
|
+
{ density: 'ldpi', size: 36 },
|
|
3
|
+
{ density: 'mdpi', size: 48 },
|
|
4
|
+
{ density: 'hdpi', size: 72 },
|
|
5
|
+
{ density: 'xhdpi', size: 96 },
|
|
6
|
+
{ density: 'xxhdpi', size: 144 },
|
|
7
|
+
{ density: 'xxxhdpi', size: 192 }
|
|
8
|
+
];
|
|
9
|
+
export async function configureAppIconAndroid(imagePath, projectPath, moduleDir, deps) {
|
|
10
|
+
const logs = [];
|
|
11
|
+
try {
|
|
12
|
+
if (!deps.existsSync(imagePath)) {
|
|
13
|
+
return {
|
|
14
|
+
success: false,
|
|
15
|
+
error: `原始图片不存在: ${imagePath}`,
|
|
16
|
+
logs
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
logs.push(`找到原始图标图片: ${imagePath}`);
|
|
20
|
+
const imageBuffer = deps.readFileSync(imagePath);
|
|
21
|
+
logs.push('成功读取原始图片');
|
|
22
|
+
const sharpInstance = deps.sharp(imageBuffer);
|
|
23
|
+
const metadata = await sharpInstance.metadata();
|
|
24
|
+
const originalWidth = metadata.width || 512;
|
|
25
|
+
const originalHeight = metadata.height || 512;
|
|
26
|
+
logs.push(`原图尺寸: ${originalWidth}x${originalHeight}`);
|
|
27
|
+
if (originalWidth !== originalHeight) {
|
|
28
|
+
logs.push(`警告: 图标图片不是正方形 (${originalWidth}x${originalHeight}),将进行裁剪处理`);
|
|
29
|
+
}
|
|
30
|
+
const resPath = deps.join(projectPath, moduleDir, 'src', 'main', 'res');
|
|
31
|
+
if (!deps.existsSync(resPath)) {
|
|
32
|
+
return {
|
|
33
|
+
success: false,
|
|
34
|
+
error: `资源目录不存在: ${resPath}`,
|
|
35
|
+
logs
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
logs.push('生成 drawable/icon.png...');
|
|
39
|
+
const drawableDir = deps.join(resPath, 'drawable');
|
|
40
|
+
if (deps.existsSync(drawableDir)) {
|
|
41
|
+
const drawableIcon = await deps.sharp(imageBuffer)
|
|
42
|
+
.resize(512, 512, {
|
|
43
|
+
fit: 'cover',
|
|
44
|
+
position: 'center'
|
|
45
|
+
})
|
|
46
|
+
.png()
|
|
47
|
+
.toBuffer();
|
|
48
|
+
const drawableIconPath = deps.join(drawableDir, 'icon.png');
|
|
49
|
+
deps.writeFileSync(drawableIconPath, drawableIcon);
|
|
50
|
+
logs.push('已生成 drawable/icon.png (512x512)');
|
|
51
|
+
}
|
|
52
|
+
logs.push('开始生成不同密度的应用图标...');
|
|
53
|
+
for (const sizeConfig of ANDROID_ICON_SIZES) {
|
|
54
|
+
const resizedIcon = await deps.sharp(imageBuffer)
|
|
55
|
+
.resize(sizeConfig.size, sizeConfig.size, {
|
|
56
|
+
fit: 'cover',
|
|
57
|
+
position: 'center'
|
|
58
|
+
})
|
|
59
|
+
.png()
|
|
60
|
+
.toBuffer();
|
|
61
|
+
const drawableDensityDir = deps.join(resPath, `drawable-${sizeConfig.density}`);
|
|
62
|
+
if (!deps.existsSync(drawableDensityDir)) {
|
|
63
|
+
deps.mkdirSync(drawableDensityDir, { recursive: true });
|
|
64
|
+
logs.push(`创建目录: drawable-${sizeConfig.density}`);
|
|
65
|
+
}
|
|
66
|
+
const drawableDensityIconPath = deps.join(drawableDensityDir, 'icon.png');
|
|
67
|
+
deps.writeFileSync(drawableDensityIconPath, resizedIcon);
|
|
68
|
+
const mipmapDir = deps.join(resPath, `mipmap-${sizeConfig.density}`);
|
|
69
|
+
if (!deps.existsSync(mipmapDir)) {
|
|
70
|
+
deps.mkdirSync(mipmapDir, { recursive: true });
|
|
71
|
+
}
|
|
72
|
+
const mipmapIconPath = deps.join(mipmapDir, 'ic_launcher.png');
|
|
73
|
+
deps.writeFileSync(mipmapIconPath, resizedIcon);
|
|
74
|
+
const size = sizeConfig.size;
|
|
75
|
+
const circleMask = deps.Buffer.from(`<svg><circle cx="${size / 2}" cy="${size / 2}" r="${size / 2}" fill="white"/></svg>`);
|
|
76
|
+
const roundIcon = await deps.sharp(resizedIcon)
|
|
77
|
+
.composite([{
|
|
78
|
+
input: circleMask,
|
|
79
|
+
top: 0,
|
|
80
|
+
left: 0,
|
|
81
|
+
blend: 'dest-in'
|
|
82
|
+
}])
|
|
83
|
+
.png()
|
|
84
|
+
.toBuffer();
|
|
85
|
+
const roundIconPath = deps.join(mipmapDir, 'ic_launcher_round.png');
|
|
86
|
+
deps.writeFileSync(roundIconPath, roundIcon);
|
|
87
|
+
logs.push(`已生成 ${sizeConfig.density} 图标 (${sizeConfig.size}x${sizeConfig.size})`);
|
|
88
|
+
}
|
|
89
|
+
logs.push('');
|
|
90
|
+
logs.push('Android 应用图标配置完成');
|
|
91
|
+
logs.push('📝 提示: 图标已保存到 drawable-xxx 和 mipmap-xxx 目录');
|
|
92
|
+
return {
|
|
93
|
+
success: true,
|
|
94
|
+
logs
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
99
|
+
return {
|
|
100
|
+
success: false,
|
|
101
|
+
error: `配置 Android 应用图标时出错: ${errorMessage}`,
|
|
102
|
+
logs
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=configureAppIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configureAppIcon.js","sourceRoot":"","sources":["../../../src/functions/android/configureAppIcon.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,4 +14,8 @@ export interface ConfigureLaunchScreenAndroidResult {
|
|
|
14
14
|
error?: string;
|
|
15
15
|
logs: string[];
|
|
16
16
|
}
|
|
17
|
-
export
|
|
17
|
+
export interface ConfigureLaunchScreenAndroidOptions {
|
|
18
|
+
splashBackgroundColor?: string;
|
|
19
|
+
splashIconPath?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function configureLaunchScreenAndroid(imagePath: string, projectPath: string, moduleDir: string, deps: ConfigureLaunchScreenAndroidDeps, options?: ConfigureLaunchScreenAndroidOptions): Promise<ConfigureLaunchScreenAndroidResult>;
|
|
@@ -6,7 +6,7 @@ const ANDROID_LAUNCH_SCREEN_SIZES = [
|
|
|
6
6
|
{ density: 'xxhdpi', width: 1080, height: 1920 },
|
|
7
7
|
{ density: 'xxxhdpi', width: 1440, height: 2560 }
|
|
8
8
|
];
|
|
9
|
-
export async function configureLaunchScreenAndroid(imagePath, projectPath, moduleDir, deps) {
|
|
9
|
+
export async function configureLaunchScreenAndroid(imagePath, projectPath, moduleDir, deps, options) {
|
|
10
10
|
const logs = [];
|
|
11
11
|
try {
|
|
12
12
|
if (!deps.existsSync(imagePath)) {
|
|
@@ -41,7 +41,7 @@ export async function configureLaunchScreenAndroid(imagePath, projectPath, modul
|
|
|
41
41
|
}
|
|
42
42
|
const resizedImage = await deps.sharp(imageBuffer)
|
|
43
43
|
.resize(sizeConfig.width, sizeConfig.height, {
|
|
44
|
-
fit: '
|
|
44
|
+
fit: 'cover',
|
|
45
45
|
position: 'center'
|
|
46
46
|
})
|
|
47
47
|
.png()
|
|
@@ -55,6 +55,16 @@ export async function configureLaunchScreenAndroid(imagePath, projectPath, modul
|
|
|
55
55
|
deps.mkdirSync(drawableDir, { recursive: true });
|
|
56
56
|
logs.push('创建 drawable 目录');
|
|
57
57
|
}
|
|
58
|
+
const defaultSplash = await deps.sharp(imageBuffer)
|
|
59
|
+
.resize(480, 800, {
|
|
60
|
+
fit: 'cover',
|
|
61
|
+
position: 'center'
|
|
62
|
+
})
|
|
63
|
+
.png()
|
|
64
|
+
.toBuffer();
|
|
65
|
+
const defaultSplashPath = deps.join(drawableDir, 'splash.png');
|
|
66
|
+
deps.writeFileSync(defaultSplashPath, defaultSplash);
|
|
67
|
+
logs.push('已生成 drawable/splash.png (默认版本)');
|
|
58
68
|
const splashScreenXml = generateSplashScreenXml();
|
|
59
69
|
const splashScreenXmlPath = deps.join(drawableDir, 'splash_screen.xml');
|
|
60
70
|
deps.writeFileSync(splashScreenXmlPath, splashScreenXml, 'utf8');
|
|
@@ -120,6 +130,40 @@ export async function configureLaunchScreenAndroid(imagePath, projectPath, modul
|
|
|
120
130
|
deps.writeFileSync(stylesXmlPath, stylesXmlContent, 'utf8');
|
|
121
131
|
logs.push('已创建 styles.xml 并添加所有启动主题');
|
|
122
132
|
}
|
|
133
|
+
let splashIconName = 'icon';
|
|
134
|
+
if (options?.splashIconPath && deps.existsSync(options.splashIconPath)) {
|
|
135
|
+
logs.push(`生成 Android 12+ Splash Screen 图标: ${options.splashIconPath}`);
|
|
136
|
+
try {
|
|
137
|
+
const splashIconBuffer = deps.readFileSync(options.splashIconPath);
|
|
138
|
+
const splashIcon = await deps.sharp(splashIconBuffer)
|
|
139
|
+
.resize(576, 576, {
|
|
140
|
+
fit: 'contain',
|
|
141
|
+
position: 'center'
|
|
142
|
+
})
|
|
143
|
+
.png()
|
|
144
|
+
.toBuffer();
|
|
145
|
+
const splashIconPath = deps.join(drawableDir, 'splash_icon.png');
|
|
146
|
+
deps.writeFileSync(splashIconPath, splashIcon);
|
|
147
|
+
splashIconName = 'splash_icon';
|
|
148
|
+
logs.push('已生成 drawable/splash_icon.png(Android 12+ Splash Screen 图标)');
|
|
149
|
+
}
|
|
150
|
+
catch (iconError) {
|
|
151
|
+
logs.push(`警告: 生成 Splash 图标失败,使用默认应用图标: ${iconError instanceof Error ? iconError.message : String(iconError)}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const valuesV31Dir = deps.join(resPath, 'values-v31');
|
|
155
|
+
if (!deps.existsSync(valuesV31Dir)) {
|
|
156
|
+
deps.mkdirSync(valuesV31Dir, { recursive: true });
|
|
157
|
+
logs.push('创建 values-v31 目录');
|
|
158
|
+
}
|
|
159
|
+
const stylesV31XmlPath = deps.join(valuesV31Dir, 'styles.xml');
|
|
160
|
+
const stylesV31Content = generateStylesXmlV31(splashIconName);
|
|
161
|
+
deps.writeFileSync(stylesV31XmlPath, stylesV31Content, 'utf8');
|
|
162
|
+
logs.push(`已创建 values-v31/styles.xml(使用图标: @drawable/${splashIconName})`);
|
|
163
|
+
const splashBgColor = options?.splashBackgroundColor || '#FFFFFF';
|
|
164
|
+
const updatedColorsXml = generateColorsXmlWithV31(splashBgColor);
|
|
165
|
+
deps.writeFileSync(colorsXmlPath, updatedColorsXml, 'utf8');
|
|
166
|
+
logs.push(`已更新 colors.xml(Splash 背景颜色: ${splashBgColor})`);
|
|
123
167
|
logs.push('Android 启动屏配置完成');
|
|
124
168
|
logs.push('');
|
|
125
169
|
logs.push('📝 提示:');
|
|
@@ -145,30 +189,16 @@ export async function configureLaunchScreenAndroid(imagePath, projectPath, modul
|
|
|
145
189
|
function generateSplashScreenXml() {
|
|
146
190
|
return `<?xml version="1.0" encoding="utf-8"?>
|
|
147
191
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
|
148
|
-
<!--
|
|
149
|
-
<item android:drawable="@
|
|
150
|
-
|
|
151
|
-
<!-- 启动图片,居中显示 -->
|
|
152
|
-
<item>
|
|
153
|
-
<bitmap
|
|
154
|
-
android:gravity="center"
|
|
155
|
-
android:src="@drawable/splash"/>
|
|
156
|
-
</item>
|
|
192
|
+
<!-- 启动图片,全屏拉伸显示 -->
|
|
193
|
+
<item android:drawable="@drawable/splash"/>
|
|
157
194
|
</layer-list>
|
|
158
195
|
`;
|
|
159
196
|
}
|
|
160
197
|
function generateLaunchBackgroundXml() {
|
|
161
198
|
return `<?xml version="1.0" encoding="utf-8"?>
|
|
162
199
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
|
163
|
-
<!--
|
|
164
|
-
<item android:drawable="@
|
|
165
|
-
|
|
166
|
-
<!-- 启动图片,居中显示 -->
|
|
167
|
-
<item>
|
|
168
|
-
<bitmap
|
|
169
|
-
android:gravity="center"
|
|
170
|
-
android:src="@drawable/splash"/>
|
|
171
|
-
</item>
|
|
200
|
+
<!-- 启动图片,全屏拉伸显示 -->
|
|
201
|
+
<item android:drawable="@drawable/splash"/>
|
|
172
202
|
</layer-list>
|
|
173
203
|
`;
|
|
174
204
|
}
|
|
@@ -230,4 +260,69 @@ function generateStylesXml() {
|
|
|
230
260
|
</resources>
|
|
231
261
|
`;
|
|
232
262
|
}
|
|
263
|
+
function generateStylesXmlV31(iconName = 'icon') {
|
|
264
|
+
return `<?xml version="1.0" encoding="utf-8"?>
|
|
265
|
+
<resources>
|
|
266
|
+
<!-- Android 12+ Splash Screen 配置:windowBackground 用纯色,避免显示两次启动画面 -->
|
|
267
|
+
<style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
|
268
|
+
<item name="android:windowBackground">@color/splash_background</item>
|
|
269
|
+
<item name="android:windowNoTitle">true</item>
|
|
270
|
+
<item name="android:windowFullscreen">false</item>
|
|
271
|
+
<item name="android:windowContentOverlay">@null</item>
|
|
272
|
+
<item name="android:windowIsTranslucent">false</item>
|
|
273
|
+
<!-- Android 12+ Splash Screen -->
|
|
274
|
+
<item name="android:windowSplashScreenBackground">@color/splash_background</item>
|
|
275
|
+
<item name="android:windowSplashScreenAnimatedIcon">@drawable/${iconName}</item>
|
|
276
|
+
<item name="android:windowSplashScreenIconBackgroundColor">@color/splash_icon_background</item>
|
|
277
|
+
<item name="android:windowSplashScreenAnimationDuration">0</item>
|
|
278
|
+
</style>
|
|
279
|
+
|
|
280
|
+
<style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
|
281
|
+
<item name="android:windowBackground">@color/splash_background</item>
|
|
282
|
+
<item name="android:windowNoTitle">true</item>
|
|
283
|
+
<item name="android:windowFullscreen">false</item>
|
|
284
|
+
<item name="android:windowContentOverlay">@null</item>
|
|
285
|
+
<item name="android:windowIsTranslucent">false</item>
|
|
286
|
+
<!-- Android 12+ Splash Screen -->
|
|
287
|
+
<item name="android:windowSplashScreenBackground">@color/splash_background</item>
|
|
288
|
+
<item name="android:windowSplashScreenAnimatedIcon">@drawable/${iconName}</item>
|
|
289
|
+
<item name="android:windowSplashScreenIconBackgroundColor">@color/splash_icon_background</item>
|
|
290
|
+
<item name="android:windowSplashScreenAnimationDuration">0</item>
|
|
291
|
+
</style>
|
|
292
|
+
|
|
293
|
+
<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
|
294
|
+
<item name="android:windowBackground">@color/splash_background</item>
|
|
295
|
+
<item name="android:windowNoTitle">true</item>
|
|
296
|
+
<item name="android:windowFullscreen">true</item>
|
|
297
|
+
<item name="android:windowContentOverlay">@null</item>
|
|
298
|
+
<!-- Android 12+ Splash Screen -->
|
|
299
|
+
<item name="android:windowSplashScreenBackground">@color/splash_background</item>
|
|
300
|
+
<item name="android:windowSplashScreenAnimatedIcon">@drawable/${iconName}</item>
|
|
301
|
+
<item name="android:windowSplashScreenIconBackgroundColor">@color/splash_icon_background</item>
|
|
302
|
+
<item name="android:windowSplashScreenAnimationDuration">0</item>
|
|
303
|
+
</style>
|
|
304
|
+
|
|
305
|
+
<style name="DCloudTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
|
306
|
+
<item name="android:windowBackground">@color/splash_background</item>
|
|
307
|
+
<item name="android:windowNoTitle">true</item>
|
|
308
|
+
<item name="android:windowContentOverlay">@null</item>
|
|
309
|
+
<!-- Android 12+ Splash Screen -->
|
|
310
|
+
<item name="android:windowSplashScreenBackground">@color/splash_background</item>
|
|
311
|
+
<item name="android:windowSplashScreenAnimatedIcon">@drawable/${iconName}</item>
|
|
312
|
+
<item name="android:windowSplashScreenIconBackgroundColor">@color/splash_icon_background</item>
|
|
313
|
+
<item name="android:windowSplashScreenAnimationDuration">0</item>
|
|
314
|
+
</style>
|
|
315
|
+
</resources>
|
|
316
|
+
`;
|
|
317
|
+
}
|
|
318
|
+
function generateColorsXmlWithV31(backgroundColor) {
|
|
319
|
+
return `<?xml version="1.0" encoding="utf-8"?>
|
|
320
|
+
<resources>
|
|
321
|
+
<!-- 启动屏背景颜色 -->
|
|
322
|
+
<color name="splash_background">${backgroundColor}</color>
|
|
323
|
+
<!-- Android 12+ 图标背景颜色 -->
|
|
324
|
+
<color name="splash_icon_background">${backgroundColor}</color>
|
|
325
|
+
</resources>
|
|
326
|
+
`;
|
|
327
|
+
}
|
|
233
328
|
//# sourceMappingURL=configureLaunchScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureLaunchScreen.js","sourceRoot":"","sources":["../../../src/functions/android/configureLaunchScreen.ts"],"names":[],"mappings":"AAgCA,MAAM,2BAA2B,GAAG;IAClC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5C,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5C,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5C,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAC9C,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAChD,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;CAClD,CAAA;
|
|
1
|
+
{"version":3,"file":"configureLaunchScreen.js","sourceRoot":"","sources":["../../../src/functions/android/configureLaunchScreen.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,9 @@ export async function modifyGradle(buildGradlePath, options, deps) {
|
|
|
16
16
|
if (options.versionCode !== undefined) {
|
|
17
17
|
buildGradleContent = buildGradleContent.replace(/versionCode\s+\d+/, `versionCode ${options.versionCode}`);
|
|
18
18
|
}
|
|
19
|
+
if (options.targetSdkVersion !== undefined) {
|
|
20
|
+
buildGradleContent = buildGradleContent.replace(/targetSdkVersion\s+\d+/, `targetSdkVersion ${options.targetSdkVersion}`);
|
|
21
|
+
}
|
|
19
22
|
if (options.signing) {
|
|
20
23
|
const { signing } = options;
|
|
21
24
|
const keystoreFileName = signing.keystore.split('/').pop() || 'keystore.jks';
|
|
@@ -94,6 +97,8 @@ export async function modifyGradle(buildGradlePath, options, deps) {
|
|
|
94
97
|
modifications.push(`versionName=${options.versionName}`);
|
|
95
98
|
if (options.versionCode !== undefined)
|
|
96
99
|
modifications.push(`versionCode=${options.versionCode}`);
|
|
100
|
+
if (options.targetSdkVersion !== undefined)
|
|
101
|
+
modifications.push(`targetSdkVersion=${options.targetSdkVersion}`);
|
|
97
102
|
if (options.signing)
|
|
98
103
|
modifications.push('签名配置已添加');
|
|
99
104
|
if (options.dependencies && options.dependencies.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modifyGradle.js","sourceRoot":"","sources":["../../../src/functions/android/modifyGradle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"modifyGradle.js","sourceRoot":"","sources":["../../../src/functions/android/modifyGradle.ts"],"names":[],"mappings":"AAoDA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,eAAuB,EACvB,OAAkC,EAClC,IAAsB;IAEtB,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,uBAAuB,eAAe,EAAE;aAChD,CAAA;QACH,CAAC;QAED,IAAI,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;QAGnE,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAC7C,gCAAgC,EAChC,kBAAkB,OAAO,CAAC,aAAa,GAAG,CAC3C,CAAA;QACH,CAAC;QAGD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAC7C,8BAA8B,EAC9B,gBAAgB,OAAO,CAAC,WAAW,GAAG,CACvC,CAAA;QACH,CAAC;QAGD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtC,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAC7C,mBAAmB,EACnB,eAAe,OAAO,CAAC,WAAW,EAAE,CACrC,CAAA;QACH,CAAC;QAGD,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC3C,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAC7C,wBAAwB,EACxB,oBAAoB,OAAO,CAAC,gBAAgB,EAAE,CAC/C,CAAA;QACH,CAAC;QAGD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;YAG3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,cAAc,CAAA;YAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC,CAAA;YAErF,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;YACzD,CAAC;YAGD,MAAM,gBAAgB,GAAG;;wBAEP,OAAO,CAAC,QAAQ;2BACb,OAAO,CAAC,WAAW;8BAChB,gBAAgB;6BACjB,OAAO,CAAC,gBAAgB;;;;MAI/C,CAAA;YAGA,MAAM,mBAAmB,GAAG,kDAAkD,CAAA;YAC9E,IAAI,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAEjD,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAC7C,mBAAmB,EACnB,gBAAgB,CACjB,CAAA;YACH,CAAC;iBAAM,CAAC;gBAEN,IAAI,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7C,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAC7C,cAAc,EACd;MACN,gBAAgB,EAAE,CACb,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAE5D,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;YAE7C,IAAI,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAE/C,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;oBAE9C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;oBACxD,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;wBAEzB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;wBACjE,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,yBAAyB,YAAY,YAAY,EAAE,GAAG,CAAC,CAAA;wBAErF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;4BAEzC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;4BACtE,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE,CAAC;gCAC7B,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;gCACzE,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;gCACvE,IAAI,SAAiB,CAAA;gCACrB,IAAI,MAAc,CAAA;gCAElB,IAAI,aAAa,EAAE,CAAC;oCAElB,SAAS,GAAG,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;oCACvD,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAA;gCAC3D,CAAC;qCAAM,CAAC;oCAEN,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;oCACvE,SAAS,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAA;oCACtE,MAAM,GAAG,MAAM,CAAA;gCACjB,CAAC;gCAED,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;oCACzD,GAAG,MAAM,mBAAmB,UAAU,KAAK;oCAC3C,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;4BACvC,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBAEN,IAAI,iBAAiB,GAAG,sBAAsB,CAAA;gBAC9C,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;oBAC9C,iBAAiB,IAAI,uBAAuB,UAAU,KAAK,CAAA;gBAC7D,CAAC;gBACD,iBAAiB,IAAI,KAAK,CAAA;gBAC1B,kBAAkB,IAAI,iBAAiB,CAAA;YACzC,CAAC;QACH,CAAC;QAGD,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAA;QAEvD,MAAM,aAAa,GAAG,EAAE,CAAA;QACxB,IAAI,OAAO,CAAC,aAAa;YAAE,aAAa,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;QACvF,IAAI,OAAO,CAAC,WAAW;YAAE,aAAa,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QACjF,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/F,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAC9G,IAAI,OAAO,CAAC,OAAO;YAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,MAAM,CAAC,CAAA;QAC9D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,sBAAsB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC1D,CAAA;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SACvF,CAAA;IACH,CAAC;AACH,CAAC"}
|
|
@@ -4,7 +4,6 @@ import type { XPath } from '../../../references/xpath.d';
|
|
|
4
4
|
export interface PermissionDeps {
|
|
5
5
|
existsSync: FileSystem['existsSync'];
|
|
6
6
|
readFileSync: FileSystem['readFileSync'];
|
|
7
|
-
readFile: FileSystem['promises']['readFile'];
|
|
8
7
|
writeFileSync: FileSystem['writeFileSync'];
|
|
9
8
|
xmlParser: XMLParserConstructor;
|
|
10
9
|
xmlSerializer: XMLSerializerConstructor;
|
|
@@ -22,6 +21,21 @@ export declare function configureManifestPermissions(manifestPath: string, permi
|
|
|
22
21
|
modificationsApplied: number;
|
|
23
22
|
};
|
|
24
23
|
error?: undefined;
|
|
24
|
+
} | {
|
|
25
|
+
success: boolean;
|
|
26
|
+
message: string;
|
|
27
|
+
data: {
|
|
28
|
+
added: number;
|
|
29
|
+
skipped: number;
|
|
30
|
+
};
|
|
31
|
+
} | {
|
|
32
|
+
data: {
|
|
33
|
+
added: number;
|
|
34
|
+
skipped: number;
|
|
35
|
+
};
|
|
36
|
+
success: boolean;
|
|
37
|
+
error: string;
|
|
38
|
+
message?: undefined;
|
|
25
39
|
}>;
|
|
26
40
|
export declare function removeManifestPermission(manifestPath: string, permission: string, deps: PermissionDeps): Promise<{
|
|
27
41
|
success: boolean;
|
|
@@ -36,5 +50,5 @@ export declare function removeManifestPermission(manifestPath: string, permissio
|
|
|
36
50
|
};
|
|
37
51
|
error?: undefined;
|
|
38
52
|
}>;
|
|
39
|
-
export declare function hasManifestPermission(manifestPath: string, permission: string, deps: PermissionDeps):
|
|
40
|
-
export declare function getManifestPermissions(manifestPath: string, deps: PermissionDeps):
|
|
53
|
+
export declare function hasManifestPermission(manifestPath: string, permission: string, deps: PermissionDeps): boolean;
|
|
54
|
+
export declare function getManifestPermissions(manifestPath: string, deps: PermissionDeps): string[];
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { modifyManifest } from './modifyManifest';
|
|
2
2
|
export async function configureManifestPermissions(manifestPath, permissions, deps) {
|
|
3
|
-
const
|
|
3
|
+
const normalizedPermissions = permissions.map(p => p.startsWith('android.permission.') ? p : `android.permission.${p}`);
|
|
4
|
+
const existingPermissions = getManifestPermissions(manifestPath, deps);
|
|
5
|
+
const permissionsToAdd = normalizedPermissions.filter(p => !existingPermissions.includes(p));
|
|
6
|
+
if (permissionsToAdd.length === 0) {
|
|
7
|
+
return {
|
|
8
|
+
success: true,
|
|
9
|
+
message: '所有权限已存在,无需添加',
|
|
10
|
+
data: { added: 0, skipped: normalizedPermissions.length }
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const modifications = permissionsToAdd.map(permission => ({
|
|
4
14
|
xpath: '//manifest',
|
|
5
15
|
action: 'addElement',
|
|
6
16
|
elementName: 'uses-permission',
|
|
@@ -8,7 +18,17 @@ export async function configureManifestPermissions(manifestPath, permissions, de
|
|
|
8
18
|
'android:name': permission
|
|
9
19
|
}
|
|
10
20
|
}));
|
|
11
|
-
|
|
21
|
+
const result = await modifyManifest(manifestPath, modifications, deps);
|
|
22
|
+
if (result.success) {
|
|
23
|
+
return {
|
|
24
|
+
...result,
|
|
25
|
+
data: {
|
|
26
|
+
added: permissionsToAdd.length,
|
|
27
|
+
skipped: normalizedPermissions.length - permissionsToAdd.length
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
12
32
|
}
|
|
13
33
|
export async function removeManifestPermission(manifestPath, permission, deps) {
|
|
14
34
|
const modifications = [
|
|
@@ -19,9 +39,9 @@ export async function removeManifestPermission(manifestPath, permission, deps) {
|
|
|
19
39
|
];
|
|
20
40
|
return modifyManifest(manifestPath, modifications, deps);
|
|
21
41
|
}
|
|
22
|
-
export
|
|
42
|
+
export function hasManifestPermission(manifestPath, permission, deps) {
|
|
23
43
|
try {
|
|
24
|
-
const content =
|
|
44
|
+
const content = deps.readFileSync(manifestPath, 'utf-8');
|
|
25
45
|
const parser = new deps.xmlParser();
|
|
26
46
|
const doc = parser.parseFromString(content, 'text/xml');
|
|
27
47
|
const elements = doc.getElementsByTagName('uses-permission');
|
|
@@ -40,9 +60,9 @@ export async function hasManifestPermission(manifestPath, permission, deps) {
|
|
|
40
60
|
return false;
|
|
41
61
|
}
|
|
42
62
|
}
|
|
43
|
-
export
|
|
63
|
+
export function getManifestPermissions(manifestPath, deps) {
|
|
44
64
|
try {
|
|
45
|
-
const content =
|
|
65
|
+
const content = deps.readFileSync(manifestPath, 'utf-8');
|
|
46
66
|
const parser = new deps.xmlParser();
|
|
47
67
|
const doc = parser.parseFromString(content, 'text/xml');
|
|
48
68
|
const permissions = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/functions/android/permission.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/functions/android/permission.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FileSystem, Path } from '../../../references/node.d';
|
|
2
|
+
import type { Sharp } from '../../../references/sharp.d';
|
|
3
|
+
export interface ConfigureAppIconIOSDeps {
|
|
4
|
+
existsSync: FileSystem['existsSync'];
|
|
5
|
+
readFileSync: FileSystem['readFileSync'];
|
|
6
|
+
writeFileSync: FileSystem['writeFileSync'];
|
|
7
|
+
mkdirSync: FileSystem['mkdirSync'];
|
|
8
|
+
join: Path['join'];
|
|
9
|
+
dirname: Path['dirname'];
|
|
10
|
+
sharp: Sharp;
|
|
11
|
+
}
|
|
12
|
+
export interface ConfigureAppIconIOSResult {
|
|
13
|
+
success: boolean;
|
|
14
|
+
error?: string;
|
|
15
|
+
logs: string[];
|
|
16
|
+
}
|
|
17
|
+
export declare function configureAppIconIOS(imagePath: string, projectPath: string, projectName: string, deps: ConfigureAppIconIOSDeps): Promise<ConfigureAppIconIOSResult>;
|