vxrn 2.13.2 → 2.13.4
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/exports/prebuildWithoutExpo.mjs +23 -88
- package/dist/exports/prebuildWithoutExpo.mjs.map +1 -1
- package/dist/exports/prebuildWithoutExpo.native.js +82 -144
- package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
- package/dist/utils/createNativeDevEngine.mjs +2 -1
- package/dist/utils/createNativeDevEngine.mjs.map +1 -1
- package/dist/utils/createNativeDevEngine.native.js +2 -1
- package/dist/utils/createNativeDevEngine.native.js.map +1 -1
- package/native-project-patches.cjs +3 -4
- package/package.json +13 -13
- package/src/exports/prebuildWithoutExpo.ts +34 -172
- package/src/utils/createNativeDevEngine.ts +4 -1
- package/src/utils/createNativeDevEngineFailure.test.ts +7 -1
- package/types/exports/prebuildWithoutExpo.d.ts.map +1 -1
- package/types/utils/createNativeDevEngine.d.ts.map +1 -1
|
@@ -3,7 +3,7 @@ import { createHash } from "crypto";
|
|
|
3
3
|
import module from "module";
|
|
4
4
|
import path from "path";
|
|
5
5
|
import { pathToFileURL } from "url";
|
|
6
|
-
import { androidIconSuffix, appIconPreviewResources, iosUsageDescriptions, validateNativeApp } from "@vxrn/utils/nativeAppManifest";
|
|
6
|
+
import { androidAppPermissions, androidIconSuffix, appIconPreviewResources, iosUsageDescriptions, validateNativeApp } from "@vxrn/utils/nativeAppManifest";
|
|
7
7
|
import FSExtra from "fs-extra";
|
|
8
8
|
import sharp from "sharp";
|
|
9
9
|
import { swiftPackageDirectories } from "../utils/swiftPackageId.native.js";
|
|
@@ -1970,7 +1970,7 @@ function renderPrebuildFile(args) {
|
|
|
1970
1970
|
}
|
|
1971
1971
|
destRelativePath = destRelativePath.replace(/HelloWorld/g, appName).replace(/helloworld/g, appName.toLowerCase());
|
|
1972
1972
|
if (content !== null) {
|
|
1973
|
-
var
|
|
1973
|
+
var _app_notifications, _app_ios, _app_android, _app_notifications1, _app_android1, _app_android_appLinks, _app_android2, _app_android3, _app_android4, _app_android5;
|
|
1974
1974
|
var rendered = content;
|
|
1975
1975
|
var replacements = [];
|
|
1976
1976
|
if (platform === "ios" && app.ios) {
|
|
@@ -2149,61 +2149,51 @@ ${phoneOrientations.map(function(orientation) {
|
|
|
2149
2149
|
${anchor}`);
|
|
2150
2150
|
}
|
|
2151
2151
|
}
|
|
2152
|
-
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml"
|
|
2153
|
-
var
|
|
2154
|
-
var
|
|
2155
|
-
if (
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2152
|
+
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml") {
|
|
2153
|
+
var _app_android_blockedPermissions, _app_android6;
|
|
2154
|
+
var permissions = androidAppPermissions(app);
|
|
2155
|
+
if (permissions.size || ((_app_android6 = app.android) === null || _app_android6 === void 0 ? void 0 : (_app_android_blockedPermissions = _app_android6.blockedPermissions) === null || _app_android_blockedPermissions === void 0 ? void 0 : _app_android_blockedPermissions.length)) {
|
|
2156
|
+
var _ref3, _ref4;
|
|
2157
|
+
var _app_android7, _app_android8, _app_android_blockedPermissions1, _app_android9;
|
|
2158
|
+
var anchor1 = "<uses-permission android:name=\"android.permission.INTERNET\" />";
|
|
2159
|
+
if (!rendered.includes(anchor1)) {
|
|
2160
|
+
var _app_imagePicker;
|
|
2161
|
+
var feature = ((_app_imagePicker = app.imagePicker) === null || _app_imagePicker === void 0 ? void 0 : _app_imagePicker.camera) !== void 0 || app.speech !== void 0 ? "the camera or microphone permission" : app.notifications !== void 0 ? "notification permissions" : "permissions";
|
|
2162
|
+
throw new Error(`[vxrn] cannot stamp ${feature}: expected the INTERNET permission in app/src/main/AndroidManifest.xml`);
|
|
2163
|
+
}
|
|
2164
|
+
var blocked = new Set(((_ref3 = (_app_android7 = app.android) === null || _app_android7 === void 0 ? void 0 : _app_android7.blockedPermissions) !== null && _ref3 !== void 0 ? _ref3 : []).map(function(name) {
|
|
2165
|
+
return name.includes(".") ? name : `android.permission.${name}`;
|
|
2166
|
+
}));
|
|
2167
|
+
var lines = [...[...permissions].filter(function(param) {
|
|
2168
|
+
var [name] = param;
|
|
2169
|
+
return !blocked.has(name);
|
|
2170
|
+
}).map(function(param) {
|
|
2171
|
+
var [name, maxSdk] = param;
|
|
2172
|
+
return ` <uses-permission android:name="${name}"${maxSdk === void 0 ? "" : ` android:maxSdkVersion="${maxSdk}"`} />`;
|
|
2173
|
+
}), ...((_ref4 = (_app_android8 = app.android) === null || _app_android8 === void 0 ? void 0 : _app_android8.blockedPermissions) !== null && _ref4 !== void 0 ? _ref4 : []).map(function(name) {
|
|
2174
|
+
return ` <uses-permission android:name="${name.includes(".") ? name : `android.permission.${name}`}" tools:node="remove" />`;
|
|
2175
|
+
})];
|
|
2176
|
+
rendered = rendered.replace(anchor1, `${anchor1}
|
|
2177
|
+
${lines.join("\n")}`);
|
|
2178
|
+
if (((_app_android9 = app.android) === null || _app_android9 === void 0 ? void 0 : (_app_android_blockedPermissions1 = _app_android9.blockedPermissions) === null || _app_android_blockedPermissions1 === void 0 ? void 0 : _app_android_blockedPermissions1.length) && !rendered.includes("xmlns:tools=")) {
|
|
2179
|
+
rendered = rendered.replace("xmlns:android=\"http://schemas.android.com/apk/res/android\"", "xmlns:android=\"http://schemas.android.com/apk/res/android\"\n xmlns:tools=\"http://schemas.android.com/tools\"");
|
|
2180
|
+
}
|
|
2161
2181
|
}
|
|
2162
2182
|
if (app.speech !== void 0) {
|
|
2163
|
-
|
|
2183
|
+
var anchor2 = "<uses-permission android:name=\"android.permission.INTERNET\" />";
|
|
2184
|
+
rendered = rendered.replace(anchor2, `${anchor2}
|
|
2185
|
+
<queries>
|
|
2186
|
+
<intent>
|
|
2187
|
+
<action android:name="android.speech.RecognitionService" />
|
|
2188
|
+
</intent>
|
|
2189
|
+
</queries>`);
|
|
2164
2190
|
}
|
|
2165
|
-
rendered = rendered.replace(anchor1, `${anchor1}
|
|
2166
|
-
${stamps1.join("\n")}`);
|
|
2167
2191
|
}
|
|
2168
|
-
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && app.
|
|
2169
|
-
var anchor2 = "<uses-permission android:name=\"android.permission.INTERNET\" />";
|
|
2170
|
-
if (!rendered.includes(anchor2)) {
|
|
2171
|
-
throw new Error("[vxrn] cannot stamp location permissions: expected the INTERNET permission in app/src/main/AndroidManifest.xml");
|
|
2172
|
-
}
|
|
2173
|
-
var stamps2 = [" <uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />", " <uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />"];
|
|
2174
|
-
if (app.location.background) {
|
|
2175
|
-
stamps2.push(" <uses-permission android:name=\"android.permission.ACCESS_BACKGROUND_LOCATION\" />");
|
|
2176
|
-
}
|
|
2177
|
-
rendered = rendered.replace(anchor2, `${anchor2}
|
|
2178
|
-
${stamps2.join("\n")}`);
|
|
2179
|
-
}
|
|
2180
|
-
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && app.pedometer !== void 0) {
|
|
2192
|
+
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && app.notifications !== void 0) {
|
|
2181
2193
|
var anchor3 = "<uses-permission android:name=\"android.permission.INTERNET\" />";
|
|
2182
2194
|
if (!rendered.includes(anchor3)) {
|
|
2183
|
-
throw new Error("[vxrn] cannot stamp the pedometer permission: expected the INTERNET permission in app/src/main/AndroidManifest.xml");
|
|
2184
|
-
}
|
|
2185
|
-
rendered = rendered.replace(anchor3, `${anchor3}
|
|
2186
|
-
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />`);
|
|
2187
|
-
}
|
|
2188
|
-
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && app.brightness === true) {
|
|
2189
|
-
var anchor4 = "<uses-permission android:name=\"android.permission.INTERNET\" />";
|
|
2190
|
-
if (!rendered.includes(anchor4)) {
|
|
2191
|
-
throw new Error("[vxrn] cannot stamp the brightness permission: expected the INTERNET permission in app/src/main/AndroidManifest.xml");
|
|
2192
|
-
}
|
|
2193
|
-
rendered = rendered.replace(anchor4, `${anchor4}
|
|
2194
|
-
<uses-permission android:name="android.permission.WRITE_SETTINGS" />`);
|
|
2195
|
-
}
|
|
2196
|
-
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && app.notifications !== void 0) {
|
|
2197
|
-
var anchor5 = "<uses-permission android:name=\"android.permission.INTERNET\" />";
|
|
2198
|
-
if (!rendered.includes(anchor5)) {
|
|
2199
2195
|
throw new Error("[vxrn] cannot stamp notification permissions: expected the INTERNET permission in app/src/main/AndroidManifest.xml");
|
|
2200
2196
|
}
|
|
2201
|
-
rendered = rendered.replace(anchor5, [anchor5, ...notificationsHost.androidPermissions.map(function(permission) {
|
|
2202
|
-
return ` <uses-permission android:name="${permission}" />`;
|
|
2203
|
-
})].join("\n"));
|
|
2204
|
-
if (!rendered.includes(notificationsHost.androidPermissions[0])) {
|
|
2205
|
-
throw new Error("[vxrn] failed to stamp notification permissions into app manifest");
|
|
2206
|
-
}
|
|
2207
2197
|
rendered = rendered.replace(" </activity>\n </application>", ` </activity>
|
|
2208
2198
|
<receiver android:name="${notificationsHost.receiver}" android:exported="false">
|
|
2209
2199
|
<intent-filter>
|
|
@@ -2216,8 +2206,8 @@ ${stamps2.join("\n")}`);
|
|
|
2216
2206
|
}
|
|
2217
2207
|
}
|
|
2218
2208
|
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && ((_app_notifications = app.notifications) === null || _app_notifications === void 0 ? void 0 : _app_notifications.push) === true) {
|
|
2219
|
-
var
|
|
2220
|
-
if (!rendered.includes(
|
|
2209
|
+
var anchor4 = notificationsHost.receiver;
|
|
2210
|
+
if (!rendered.includes(anchor4)) {
|
|
2221
2211
|
throw new Error("[vxrn] cannot stamp the push service: expected the notification receiver in app/src/main/AndroidManifest.xml");
|
|
2222
2212
|
}
|
|
2223
2213
|
rendered = rendered.replace(" </receiver>\n </application>", ` </receiver>
|
|
@@ -2232,50 +2222,19 @@ ${stamps2.join("\n")}`);
|
|
|
2232
2222
|
}
|
|
2233
2223
|
}
|
|
2234
2224
|
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && (app.audio !== void 0 || app.photoLibrary !== void 0 || app.contacts !== void 0 || app.calendar !== void 0 || ((_app_ios = app.ios) === null || _app_ios === void 0 ? void 0 : _app_ios.backgroundTasks) !== void 0)) {
|
|
2235
|
-
var
|
|
2236
|
-
var
|
|
2237
|
-
if (!rendered.includes(
|
|
2225
|
+
var _app_calendar, _app_photoLibrary1, _app_audio1, _app_ios9;
|
|
2226
|
+
var anchor5 = "<uses-permission android:name=\"android.permission.INTERNET\" />";
|
|
2227
|
+
if (!rendered.includes(anchor5)) {
|
|
2238
2228
|
throw new Error("[vxrn] cannot stamp media permissions: expected the INTERNET permission in app/src/main/AndroidManifest.xml");
|
|
2239
2229
|
}
|
|
2240
|
-
var stamps3 = [];
|
|
2241
|
-
if (((_app_audio1 = app.audio) === null || _app_audio1 === void 0 ? void 0 : _app_audio1.microphone) !== void 0 && !rendered.includes("android.permission.RECORD_AUDIO")) {
|
|
2242
|
-
stamps3.push(" <uses-permission android:name=\"android.permission.RECORD_AUDIO\" />");
|
|
2243
|
-
}
|
|
2244
|
-
if (((_app_photoLibrary1 = app.photoLibrary) === null || _app_photoLibrary1 === void 0 ? void 0 : _app_photoLibrary1.readWrite) !== void 0) {
|
|
2245
|
-
stamps3.push(" <uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\" />", " <uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\" />", " <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" android:maxSdkVersion=\"32\" />");
|
|
2246
|
-
}
|
|
2247
|
-
if (((_app_photoLibrary2 = app.photoLibrary) === null || _app_photoLibrary2 === void 0 ? void 0 : _app_photoLibrary2.addOnly) !== void 0) {
|
|
2248
|
-
stamps3.push(" <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" android:maxSdkVersion=\"28\" />");
|
|
2249
|
-
}
|
|
2250
|
-
if (app.contacts !== void 0) {
|
|
2251
|
-
stamps3.push(" <uses-permission android:name=\"android.permission.READ_CONTACTS\" />", " <uses-permission android:name=\"android.permission.WRITE_CONTACTS\" />");
|
|
2252
|
-
}
|
|
2253
|
-
if (((_app_calendar = app.calendar) === null || _app_calendar === void 0 ? void 0 : _app_calendar.usage) !== void 0) {
|
|
2254
|
-
stamps3.push(" <uses-permission android:name=\"android.permission.READ_CALENDAR\" />", " <uses-permission android:name=\"android.permission.WRITE_CALENDAR\" />");
|
|
2255
|
-
}
|
|
2256
|
-
if (((_app_calendar1 = app.calendar) === null || _app_calendar1 === void 0 ? void 0 : _app_calendar1.remindersUsage) !== void 0) {
|
|
2257
|
-
if (!rendered.includes("android.permission.POST_NOTIFICATIONS")) {
|
|
2258
|
-
stamps3.push(" <uses-permission android:name=\"android.permission.POST_NOTIFICATIONS\" />");
|
|
2259
|
-
}
|
|
2260
|
-
if (!rendered.includes("android.permission.RECEIVE_BOOT_COMPLETED")) {
|
|
2261
|
-
stamps3.push(" <uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\" />");
|
|
2262
|
-
}
|
|
2263
|
-
}
|
|
2264
|
-
if (((_app_audio2 = app.audio) === null || _app_audio2 === void 0 ? void 0 : _app_audio2.background) === true) {
|
|
2265
|
-
stamps3.push(" <uses-permission android:name=\"android.permission.FOREGROUND_SERVICE\" />", " <uses-permission android:name=\"android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK\" />");
|
|
2266
|
-
}
|
|
2267
|
-
if (stamps3.length) {
|
|
2268
|
-
rendered = rendered.replace(anchor7, `${anchor7}
|
|
2269
|
-
${stamps3.join("\n")}`);
|
|
2270
|
-
}
|
|
2271
2230
|
var appStamps = [];
|
|
2272
|
-
if (((
|
|
2231
|
+
if (((_app_calendar = app.calendar) === null || _app_calendar === void 0 ? void 0 : _app_calendar.remindersUsage) !== void 0) {
|
|
2273
2232
|
appStamps.push(" <meta-data android:name=\"one.calendar.reminders\" android:value=\"true\" />");
|
|
2274
2233
|
}
|
|
2275
|
-
if (((
|
|
2234
|
+
if (((_app_photoLibrary1 = app.photoLibrary) === null || _app_photoLibrary1 === void 0 ? void 0 : _app_photoLibrary1.addOnly) !== void 0) {
|
|
2276
2235
|
appStamps.push(" <meta-data android:name=\"one.photoLibrary.addOnly\" android:value=\"true\" />");
|
|
2277
2236
|
}
|
|
2278
|
-
if (((
|
|
2237
|
+
if (((_app_audio1 = app.audio) === null || _app_audio1 === void 0 ? void 0 : _app_audio1.background) === true) {
|
|
2279
2238
|
appStamps.push(" <meta-data android:name=\"one.audio.background\" android:value=\"true\" />", " <service android:name=\"com.margelo.nitro.one.OneAudioService\" android:exported=\"false\" android:foregroundServiceType=\"mediaPlayback\" />");
|
|
2280
2239
|
}
|
|
2281
2240
|
if (((_app_ios9 = app.ios) === null || _app_ios9 === void 0 ? void 0 : _app_ios9.backgroundTasks) !== void 0) {
|
|
@@ -2302,17 +2261,17 @@ ${appAnchor}`);
|
|
|
2302
2261
|
rendered = patchAndroidMainApplicationUpdatesHost(rendered);
|
|
2303
2262
|
}
|
|
2304
2263
|
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && app.updates !== void 0) {
|
|
2305
|
-
var
|
|
2306
|
-
if (!rendered.includes(
|
|
2264
|
+
var anchor6 = " </application>";
|
|
2265
|
+
if (!rendered.includes(anchor6)) {
|
|
2307
2266
|
throw new Error("[vxrn] cannot stamp the updates config: expected </application> in app/src/main/AndroidManifest.xml");
|
|
2308
2267
|
}
|
|
2309
|
-
var
|
|
2268
|
+
var stamps1 = [];
|
|
2310
2269
|
if (app.updates.url !== void 0) {
|
|
2311
|
-
|
|
2270
|
+
stamps1.push(` <meta-data android:name="dev.onejs.updates.url" android:value="${escapeXml(app.updates.url)}" />`);
|
|
2312
2271
|
}
|
|
2313
|
-
|
|
2314
|
-
rendered = rendered.replace(
|
|
2315
|
-
${
|
|
2272
|
+
stamps1.push(" <meta-data android:name=\"dev.onejs.updates.runtimeVersion\" android:value=\"@string/one_updates_runtime_version\" />");
|
|
2273
|
+
rendered = rendered.replace(anchor6, `${stamps1.join("\n")}
|
|
2274
|
+
${anchor6}`);
|
|
2316
2275
|
}
|
|
2317
2276
|
if (platform === "android" && relativePath === "app/src/main/res/values/strings.xml" && app.updates !== void 0) {
|
|
2318
2277
|
var version = app.updates.runtimeVersion.replace(/\\/g, "\\\\").replace(/"/g, "\\\"");
|
|
@@ -2320,12 +2279,12 @@ ${anchor8}`);
|
|
|
2320
2279
|
</resources>`);
|
|
2321
2280
|
}
|
|
2322
2281
|
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && ((_app_android = app.android) === null || _app_android === void 0 ? void 0 : _app_android.googleMapsApiKey) !== void 0) {
|
|
2323
|
-
var
|
|
2324
|
-
if (!rendered.includes(
|
|
2282
|
+
var anchor7 = " </application>";
|
|
2283
|
+
if (!rendered.includes(anchor7)) {
|
|
2325
2284
|
throw new Error("[vxrn] cannot stamp the maps api key: expected </application> in app/src/main/AndroidManifest.xml");
|
|
2326
2285
|
}
|
|
2327
|
-
rendered = rendered.replace(
|
|
2328
|
-
${
|
|
2286
|
+
rendered = rendered.replace(anchor7, ` <meta-data android:name="com.google.android.geo.API_KEY" android:value="${escapeXml(app.android.googleMapsApiKey)}" />
|
|
2287
|
+
${anchor7}`);
|
|
2329
2288
|
}
|
|
2330
2289
|
if (platform === "android" && relativePath === "gradle.properties" && ((_app_notifications1 = app.notifications) === null || _app_notifications1 === void 0 ? void 0 : _app_notifications1.push) === true) {
|
|
2331
2290
|
var line = `${notificationsHost.pushGradleProperty}=true`;
|
|
@@ -2356,28 +2315,7 @@ ${line1}
|
|
|
2356
2315
|
}
|
|
2357
2316
|
rendered = rendered.replace(dayNight, app.userInterfaceStyle === "light" ? "parent=\"Theme.AppCompat.Light.NoActionBar\"" : "parent=\"Theme.AppCompat.NoActionBar\"");
|
|
2358
2317
|
}
|
|
2359
|
-
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && ((
|
|
2360
|
-
var _ref3, _ref4;
|
|
2361
|
-
var _app_android8, _app_android9, _app_android_blockedPermissions1, _app_android10;
|
|
2362
|
-
var anchor10 = "<uses-permission android:name=\"android.permission.INTERNET\" />";
|
|
2363
|
-
if (!rendered.includes(anchor10)) {
|
|
2364
|
-
throw new Error("[vxrn] cannot stamp permissions: expected the INTERNET permission in app/src/main/AndroidManifest.xml");
|
|
2365
|
-
}
|
|
2366
|
-
var permissionName = function permissionName2(name) {
|
|
2367
|
-
return name.includes(".") ? name : `android.permission.${name}`;
|
|
2368
|
-
};
|
|
2369
|
-
var lines = [...((_ref3 = (_app_android8 = app.android) === null || _app_android8 === void 0 ? void 0 : _app_android8.permissions) !== null && _ref3 !== void 0 ? _ref3 : []).map(function(name) {
|
|
2370
|
-
return ` <uses-permission android:name="${permissionName(name)}" />`;
|
|
2371
|
-
}), ...((_ref4 = (_app_android9 = app.android) === null || _app_android9 === void 0 ? void 0 : _app_android9.blockedPermissions) !== null && _ref4 !== void 0 ? _ref4 : []).map(function(name) {
|
|
2372
|
-
return ` <uses-permission android:name="${permissionName(name)}" tools:node="remove" />`;
|
|
2373
|
-
})];
|
|
2374
|
-
rendered = rendered.replace(anchor10, `${anchor10}
|
|
2375
|
-
${lines.join("\n")}`);
|
|
2376
|
-
if (((_app_android10 = app.android) === null || _app_android10 === void 0 ? void 0 : (_app_android_blockedPermissions1 = _app_android10.blockedPermissions) === null || _app_android_blockedPermissions1 === void 0 ? void 0 : _app_android_blockedPermissions1.length) && !rendered.includes("xmlns:tools=")) {
|
|
2377
|
-
rendered = rendered.replace("xmlns:android=\"http://schemas.android.com/apk/res/android\"", "xmlns:android=\"http://schemas.android.com/apk/res/android\"\n xmlns:tools=\"http://schemas.android.com/tools\"");
|
|
2378
|
-
}
|
|
2379
|
-
}
|
|
2380
|
-
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && ((_app_android4 = app.android) === null || _app_android4 === void 0 ? void 0 : (_app_android_appLinks = _app_android4.appLinks) === null || _app_android_appLinks === void 0 ? void 0 : _app_android_appLinks.length)) {
|
|
2318
|
+
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && ((_app_android2 = app.android) === null || _app_android2 === void 0 ? void 0 : (_app_android_appLinks = _app_android2.appLinks) === null || _app_android_appLinks === void 0 ? void 0 : _app_android_appLinks.length)) {
|
|
2381
2319
|
rendered = rendered.replace(" </activity>", ` <intent-filter android:autoVerify="true">
|
|
2382
2320
|
<action android:name="android.intent.action.VIEW" />
|
|
2383
2321
|
<category android:name="android.intent.category.DEFAULT" />
|
|
@@ -2390,19 +2328,19 @@ ${app.android.appLinks.map(function(link) {
|
|
|
2390
2328
|
</activity>`);
|
|
2391
2329
|
}
|
|
2392
2330
|
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && app.orientation !== void 0) {
|
|
2393
|
-
var
|
|
2394
|
-
if (!rendered.includes(
|
|
2331
|
+
var anchor8 = "android:name=\".MainActivity\"";
|
|
2332
|
+
if (!rendered.includes(anchor8)) {
|
|
2395
2333
|
throw new Error("[vxrn] cannot stamp the orientation: expected .MainActivity in app/src/main/AndroidManifest.xml");
|
|
2396
2334
|
}
|
|
2397
|
-
rendered = rendered.replace(
|
|
2335
|
+
rendered = rendered.replace(anchor8, `${anchor8}
|
|
2398
2336
|
android:screenOrientation="${app.orientation === "default" ? "unspecified" : app.orientation}"`);
|
|
2399
2337
|
}
|
|
2400
2338
|
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && app.pictureInPicture) {
|
|
2401
|
-
var
|
|
2402
|
-
if (!rendered.includes(
|
|
2339
|
+
var anchor9 = "android:name=\".MainActivity\"";
|
|
2340
|
+
if (!rendered.includes(anchor9)) {
|
|
2403
2341
|
throw new Error("[vxrn] cannot stamp picture in picture: expected .MainActivity in app/src/main/AndroidManifest.xml");
|
|
2404
2342
|
}
|
|
2405
|
-
rendered = rendered.replace(
|
|
2343
|
+
rendered = rendered.replace(anchor9, `${anchor9}
|
|
2406
2344
|
android:supportsPictureInPicture="true"`);
|
|
2407
2345
|
}
|
|
2408
2346
|
if (platform === "android" && relativePath === "app/src/main/AndroidManifest.xml" && schemes.length) {
|
|
@@ -2433,12 +2371,12 @@ ${schemes.map(function(scheme) {
|
|
|
2433
2371
|
}
|
|
2434
2372
|
}
|
|
2435
2373
|
if (platform === "ios" && relativePath.endsWith(".xcodeproj/project.pbxproj") && app.alternateIcons !== void 0) {
|
|
2436
|
-
var
|
|
2437
|
-
if (!rendered.includes(
|
|
2374
|
+
var anchor10 = "ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;";
|
|
2375
|
+
if (!rendered.includes(anchor10)) {
|
|
2438
2376
|
throw new Error("[vxrn] prebuild template lost its primary app icon build setting");
|
|
2439
2377
|
}
|
|
2440
2378
|
var names = Object.keys(app.alternateIcons).sort().join(" ");
|
|
2441
|
-
rendered = rendered.replaceAll(
|
|
2379
|
+
rendered = rendered.replaceAll(anchor10, `${anchor10}
|
|
2442
2380
|
ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "${names}";`);
|
|
2443
2381
|
}
|
|
2444
2382
|
if (platform === "ios" && relativePath.endsWith("/Info.plist")) {
|
|
@@ -2473,16 +2411,16 @@ ${schemes.map(function(scheme) {
|
|
|
2473
2411
|
}
|
|
2474
2412
|
}
|
|
2475
2413
|
if (additions.length) {
|
|
2476
|
-
var
|
|
2477
|
-
if (!rendered.includes(
|
|
2414
|
+
var anchor11 = " <key>LSRequiresIPhoneOS</key>";
|
|
2415
|
+
if (!rendered.includes(anchor11)) {
|
|
2478
2416
|
throw new Error(`[vxrn] cannot stamp ${additions[0][0]}: expected LSRequiresIPhoneOS in Info.plist`);
|
|
2479
2417
|
}
|
|
2480
|
-
rendered = rendered.replace(
|
|
2418
|
+
rendered = rendered.replace(anchor11, `${additions.map(function(param) {
|
|
2481
2419
|
var [key, text] = param;
|
|
2482
2420
|
return ` <key>${key}</key>
|
|
2483
2421
|
<string>${escapeXml(text)}</string>
|
|
2484
2422
|
`;
|
|
2485
|
-
}).join("")}${
|
|
2423
|
+
}).join("")}${anchor11}`);
|
|
2486
2424
|
}
|
|
2487
2425
|
rendered = rendered.replace(/\t<key>NS\w+UsageDescription<\/key>\s*<string><\/string>\n/g, "");
|
|
2488
2426
|
}
|
|
@@ -2560,7 +2498,7 @@ use_frameworks! :linkage => :${app.ios.useFrameworks}`);
|
|
|
2560
2498
|
}
|
|
2561
2499
|
}
|
|
2562
2500
|
if (platform === "android" && relativePath === "app/build.gradle") {
|
|
2563
|
-
var
|
|
2501
|
+
var _app_android10;
|
|
2564
2502
|
rendered = nativeProjectPatches.replaceAppBuildGradleReactBlock(rendered);
|
|
2565
2503
|
rendered = nativeProjectPatches.addDepsPatchToAppBuildGradle(rendered);
|
|
2566
2504
|
if (!rendered.includes("entryFile = file(\"../../package.json\")") || !rendered.includes("[vxrn/one] ensure patches are applied")) {
|
|
@@ -2572,7 +2510,7 @@ use_frameworks! :linkage => :${app.ios.useFrameworks}`);
|
|
|
2572
2510
|
if (app.version !== void 0) {
|
|
2573
2511
|
rendered = rendered.replace(/versionName "[^"]*"/g, `versionName "${app.version}"`);
|
|
2574
2512
|
}
|
|
2575
|
-
if (((
|
|
2513
|
+
if (((_app_android10 = app.android) === null || _app_android10 === void 0 ? void 0 : _app_android10.versionCode) !== void 0) {
|
|
2576
2514
|
rendered = rendered.replace(/versionCode \d+/g, `versionCode ${app.android.versionCode}`);
|
|
2577
2515
|
}
|
|
2578
2516
|
}
|
|
@@ -2588,7 +2526,7 @@ use_frameworks! :linkage => :${app.ios.useFrameworks}`);
|
|
|
2588
2526
|
}
|
|
2589
2527
|
rendered = rendered.replace(autolinkCommand, `ex.autolinkLibrariesFromCommand(["node", ["node", "--print", "require('module').createRequire(require.resolve('vxrn/package.json')).resolve('@react-native-community/cli/build/bin.js')"].execute(null, settingsDir).text.trim(), "config"])`);
|
|
2590
2528
|
}
|
|
2591
|
-
if (platform === "android" && relativePath === "app/build.gradle" && ((
|
|
2529
|
+
if (platform === "android" && relativePath === "app/build.gradle" && ((_app_android3 = app.android) === null || _app_android3 === void 0 ? void 0 : _app_android3.minify)) {
|
|
2592
2530
|
var minify = "def enableProguardInReleaseBuilds = false";
|
|
2593
2531
|
var minifyEnabled = "minifyEnabled enableProguardInReleaseBuilds";
|
|
2594
2532
|
if (!rendered.includes(minify) || !rendered.includes(minifyEnabled)) {
|
|
@@ -2600,7 +2538,7 @@ use_frameworks! :linkage => :${app.ios.useFrameworks}`);
|
|
|
2600
2538
|
shrinkResources true`);
|
|
2601
2539
|
}
|
|
2602
2540
|
}
|
|
2603
|
-
if (platform === "android" && ((
|
|
2541
|
+
if (platform === "android" && ((_app_android4 = app.android) === null || _app_android4 === void 0 ? void 0 : _app_android4.googleServicesFile)) {
|
|
2604
2542
|
var edits = [[
|
|
2605
2543
|
"build.gradle",
|
|
2606
2544
|
"classpath(\"org.jetbrains.kotlin:kotlin-gradle-plugin\")",
|
|
@@ -2613,11 +2551,11 @@ use_frameworks! :linkage => :${app.ios.useFrameworks}`);
|
|
|
2613
2551
|
var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;
|
|
2614
2552
|
try {
|
|
2615
2553
|
for (var _iterator3 = edits[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
|
2616
|
-
var [file,
|
|
2554
|
+
var [file, anchor12, insertion] = _step3.value;
|
|
2617
2555
|
if (relativePath !== file) continue;
|
|
2618
|
-
var next = insertAfterLine(rendered,
|
|
2556
|
+
var next = insertAfterLine(rendered, anchor12, insertion);
|
|
2619
2557
|
if (next === rendered) {
|
|
2620
|
-
throw new Error(`[vxrn] prebuild template ${file} lost its ${
|
|
2558
|
+
throw new Error(`[vxrn] prebuild template ${file} lost its ${anchor12} anchor`);
|
|
2621
2559
|
}
|
|
2622
2560
|
rendered = next;
|
|
2623
2561
|
}
|
|
@@ -2636,7 +2574,7 @@ use_frameworks! :linkage => :${app.ios.useFrameworks}`);
|
|
|
2636
2574
|
}
|
|
2637
2575
|
}
|
|
2638
2576
|
}
|
|
2639
|
-
if (platform === "android" && relativePath === "app/proguard-rules.pro" && ((
|
|
2577
|
+
if (platform === "android" && relativePath === "app/proguard-rules.pro" && ((_app_android5 = app.android) === null || _app_android5 === void 0 ? void 0 : _app_android5.proguardRules)) {
|
|
2640
2578
|
rendered = `${rendered.trimEnd()}
|
|
2641
2579
|
|
|
2642
2580
|
${app.android.proguardRules.trim()}
|
|
@@ -2648,8 +2586,8 @@ ${app.android.proguardRules.trim()}
|
|
|
2648
2586
|
["compileSdk", "compileSdkVersion"]
|
|
2649
2587
|
]; _i < _iter.length; _i++) {
|
|
2650
2588
|
var [field, setting] = _iter[_i];
|
|
2651
|
-
var
|
|
2652
|
-
var value1 = platform === "android" ? (
|
|
2589
|
+
var _app_android11;
|
|
2590
|
+
var value1 = platform === "android" ? (_app_android11 = app.android) === null || _app_android11 === void 0 ? void 0 : _app_android11[field] : void 0;
|
|
2653
2591
|
if (value1 === void 0) continue;
|
|
2654
2592
|
rendered = rendered.replace(new RegExp(`${setting} = \\d+`, "g"), `${setting} = ${value1}`);
|
|
2655
2593
|
}
|