react-native-3rddigital-appupdate 1.0.13 → 1.0.16

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/README.md CHANGED
@@ -57,6 +57,8 @@ const App = () => {
57
57
  key: 'YOUR_PROJECT_KEY',
58
58
  iosPackage: 'com.example.ios',
59
59
  androidPackage: 'com.example.android',
60
+ restartAfterInstall: true,
61
+ restartDelay: 1000,
60
62
  loaderOptions: {
61
63
  text: 'Downloading update...',
62
64
  showProgress: true,
@@ -99,6 +101,8 @@ Options:
99
101
  | `key` | string | ✅ | Project key to identify the app on your update server |
100
102
  | `iosPackage` | string | ✅ | iOS bundle/package identifier |
101
103
  | `androidPackage` | string | ✅ | Android bundle/package identifier |
104
+ | `restartAfterInstall` | boolean | ❌ | Whether the app should restart automatically after OTA install. Defaults to `true` |
105
+ | `restartDelay` | number | ❌ | Delay in milliseconds before restart after install. Defaults to `1000` |
102
106
  | `loaderOptions` | object | ❌ | Customize loader UI (see below) |
103
107
  | `dialogOptions` | object | ❌ | Customize alert dialog UI (see below) |
104
108
 
@@ -49,7 +49,9 @@ export const checkOTAUpdate = async ({
49
49
  androidPackage,
50
50
  loaderOptions,
51
51
  dialogOptions,
52
- baseUrl
52
+ baseUrl,
53
+ restartAfterInstall = true,
54
+ restartDelay = 1000
53
55
  }) => {
54
56
  try {
55
57
  const API_URL = baseUrl;
@@ -108,8 +110,8 @@ export const checkOTAUpdate = async ({
108
110
  }
109
111
  }).finally(() => AppLoader.hide());
110
112
  },
111
- restartAfterInstall: true,
112
- restartDelay: 1000
113
+ restartAfterInstall,
114
+ restartDelay
113
115
  });
114
116
  };
115
117
  if (forceUpdate) {
@@ -1 +1 @@
1
- {"version":3,"names":["axios","Platform","ReactNativeBlobUtil","DeviceInfo","hotUpdate","AppAlertDialog","AppLoader","OTA_UPDATE_SUCCESS_FILE","fs","dirs","CacheDir","persistOTAUpdateSuccessState","state","writeFile","JSON","stringify","error","console","warn","readOTAUpdateSuccessState","exists","content","readFile","parse","consumeOTAUpdateSuccessState","unlink","checkOTAUpdate","key","iosPackage","androidPackage","loaderOptions","dialogOptions","baseUrl","API_URL","response","get","currentVersion","getCurrentVersion","data","OS","android","ios","version","forceUpdate","url","bundleId","currentAppVersion","getVersion","bundleAppVersion","appVersion","downloadAndReport","show","downloadBundleUri","progress","received","total","showProgress","percentage","Number","toFixed","updateProgress","updateSuccess","installedAt","Date","toISOString","finally","post","status","headers","hide","catch","updateFail","deviceInfo","model","getModel","brand","getBrand","systemName","getSystemName","systemVersion","getSystemVersion","restartAfterInstall","restartDelay","showMessage","title","message","confirmText","cancelText","onConfirm","onCancel","err"],"sourceRoot":"../../src","sources":["checkOTAUpdate.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["axios","Platform","ReactNativeBlobUtil","DeviceInfo","hotUpdate","AppAlertDialog","AppLoader","OTA_UPDATE_SUCCESS_FILE","fs","dirs","CacheDir","persistOTAUpdateSuccessState","state","writeFile","JSON","stringify","error","console","warn","readOTAUpdateSuccessState","exists","content","readFile","parse","consumeOTAUpdateSuccessState","unlink","checkOTAUpdate","key","iosPackage","androidPackage","loaderOptions","dialogOptions","baseUrl","restartAfterInstall","restartDelay","API_URL","response","get","currentVersion","getCurrentVersion","data","OS","android","ios","version","forceUpdate","url","bundleId","currentAppVersion","getVersion","bundleAppVersion","appVersion","downloadAndReport","show","downloadBundleUri","progress","received","total","showProgress","percentage","Number","toFixed","updateProgress","updateSuccess","installedAt","Date","toISOString","finally","post","status","headers","hide","catch","updateFail","deviceInfo","model","getModel","brand","getBrand","systemName","getSystemName","systemVersion","getSystemVersion","showMessage","title","message","confirmText","cancelText","onConfirm","onCancel","err"],"sourceRoot":"../../src","sources":["checkOTAUpdate.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,cAAc;AACvC,OAAOC,mBAAmB,MAAM,wBAAwB;AACxD,OAAOC,UAAU,MAAM,0BAA0B;AACjD,OAAOC,SAAS,MAAM,6BAA6B;AACnD,SAASC,cAAc,QAA4B,qBAAkB;AACrE,SAASC,SAAS,QAA4B,gBAAa;AAoB3D,MAAMC,uBAAuB,GAAG,GAAGL,mBAAmB,CAACM,EAAE,CAACC,IAAI,CAACC,QAAQ,0BAA0B;AAEjG,MAAMC,4BAA4B,GAAG,MAAOC,KAA4B,IAAK;EAC3E,IAAI;IACF,MAAMV,mBAAmB,CAACM,EAAE,CAACK,SAAS,CACpCN,uBAAuB,EACvBO,IAAI,CAACC,SAAS,CAACH,KAAK,CAAC,EACrB,MACF,CAAC;EACH,CAAC,CAAC,OAAOI,KAAK,EAAE;IACdC,OAAO,CAACC,IAAI,CAAC,6CAA6C,EAAEF,KAAK,CAAC;EACpE;AACF,CAAC;AAED,MAAMG,yBAAyB,GAAG,MAAAA,CAAA,KAAY;EAC5C,IAAI;IACF,MAAMC,MAAM,GAAG,MAAMlB,mBAAmB,CAACM,EAAE,CAACY,MAAM,CAACb,uBAAuB,CAAC;IAE3E,IAAI,CAACa,MAAM,EAAE;MACX,OAAO,IAAI;IACb;IAEA,MAAMC,OAAO,GAAG,MAAMnB,mBAAmB,CAACM,EAAE,CAACc,QAAQ,CACnDf,uBAAuB,EACvB,MACF,CAAC;IACD,OAAOO,IAAI,CAACS,KAAK,CAACF,OAAO,CAAC;EAC5B,CAAC,CAAC,OAAOL,KAAK,EAAE;IACdC,OAAO,CAACC,IAAI,CAAC,0CAA0C,EAAEF,KAAK,CAAC;IAC/D,OAAO,IAAI;EACb;AACF,CAAC;AAED,OAAO,MAAMQ,4BAA4B,GAAG,MAAAA,CAAA,KAAY;EACtD,MAAMZ,KAAK,GAAG,MAAMO,yBAAyB,CAAC,CAAC;EAE/C,IAAI,CAACP,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAEA,IAAI;IACF,MAAMQ,MAAM,GAAG,MAAMlB,mBAAmB,CAACM,EAAE,CAACY,MAAM,CAACb,uBAAuB,CAAC;IAE3E,IAAIa,MAAM,EAAE;MACV,MAAMlB,mBAAmB,CAACM,EAAE,CAACiB,MAAM,CAAClB,uBAAuB,CAAC;IAC9D;EACF,CAAC,CAAC,OAAOS,KAAK,EAAE;IACdC,OAAO,CAACC,IAAI,CAAC,2CAA2C,EAAEF,KAAK,CAAC;EAClE;EAEA,OAAOJ,KAAK;AACd,CAAC;AAED,OAAO,MAAMc,cAAc,GAAG,MAAAA,CAAO;EACnCC,GAAG;EACHC,UAAU;EACVC,cAAc;EACdC,aAAa;EACbC,aAAa;EACbC,OAAO;EACPC,mBAAmB,GAAG,IAAI;EAC1BC,YAAY,GAAG;AACD,CAAC,KAAK;EACpB,IAAI;IACF,MAAMC,OAAO,GAAGH,OAAO;IACvB,MAAMI,QAAQ,GAAG,MAAMpC,KAAK,CAACqC,GAAG,CAC9B,GAAGF,OAAO,2BAA2BR,GAAG,eAAeC,UAAU,mBAAmBC,cAAc,EACpG,CAAC;IAED,MAAMS,cAAc,GAAG,MAAMlC,SAAS,CAACmC,iBAAiB,CAAC,CAAC;IAC1D,MAAMC,IAAI,GACRvC,QAAQ,CAACwC,EAAE,KAAK,SAAS,GAAGL,QAAQ,EAAEI,IAAI,EAAEE,OAAO,GAAGN,QAAQ,EAAEI,IAAI,EAAEG,GAAG;IAC3E,MAAMC,OAAO,GAAGJ,IAAI,EAAEI,OAAO,IAAI,CAAC;IAClC,MAAMC,WAAW,GAAGL,IAAI,EAAEK,WAAW,IAAI,KAAK;IAC9C,MAAMC,GAAG,GAAGN,IAAI,EAAEM,GAAG,IAAI,EAAE;IAC3B,MAAMC,QAAQ,GAAGP,IAAI,EAAEO,QAAQ,IAAI,EAAE;IACrC,MAAMC,iBAAiB,GAAG7C,UAAU,CAAC8C,UAAU,CAAC,CAAC;IACjD,MAAMC,gBAAgB,GAAGV,IAAI,EAAEW,UAAU,IAAIH,iBAAiB;IAE9D,IAAIJ,OAAO,IAAIN,cAAc,IAAIU,iBAAiB,KAAKE,gBAAgB,EAAE;MACvE;IACF;IAEA,MAAME,iBAAiB,GAAGA,CAAA,KAAM;MAC9B9C,SAAS,CAAC+C,IAAI,CAACvB,aAAa,CAAC;MAC7B1B,SAAS,CAACkD,iBAAiB,CAACpD,mBAAmB,EAAE4C,GAAG,EAAEF,OAAO,EAAE;QAC7DW,QAAQ,EAAEA,CAACC,QAAQ,EAAEC,KAAK,KAAK;UAC7B,IAAI3B,aAAa,EAAE4B,YAAY,EAAE;YAC/B,MAAMC,UAAU,GAAG,CAChBC,MAAM,CAACJ,QAAQ,CAAC,GAAGI,MAAM,CAACH,KAAK,CAAC,GACjC,GAAG,EACHI,OAAO,CAAC,CAAC,CAAC;YACZvD,SAAS,CAACwD,cAAc,CAACF,MAAM,CAACD,UAAU,CAAC,CAAC;UAC9C;QACF,CAAC;QACDI,aAAa,EAAEA,CAAA,KAAM;UACnBpD,4BAA4B,CAAC;YAC3BoC,QAAQ;YACRH,OAAO;YACPO,UAAU,EAAED,gBAAgB;YAC5Bc,WAAW,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC;UACtC,CAAC,CAAC,CACCC,OAAO,CAAC,MAAM;YACbnE,KAAK,CACFoE,IAAI,CACH,GAAGjC,OAAO,WAAWY,QAAQ,QAAQ,EACrC;cAAEsB,MAAM,EAAE;YAAU,CAAC,EACrB;cAAEC,OAAO,EAAE;gBAAE,cAAc,EAAE;cAAmB;YAAE,CACpD,CAAC,CACAH,OAAO,CAAC,MAAM7D,SAAS,CAACiE,IAAI,CAAC,CAAC,CAAC;UACpC,CAAC,CAAC,CACDC,KAAK,CAAExD,KAAK,IAAK;YAChBC,OAAO,CAACC,IAAI,CACV,iDAAiD,EACjDF,KACF,CAAC;UACH,CAAC,CAAC;QACN,CAAC;QACDyD,UAAU,EAAGzD,KAAK,IAAK;UACrBhB,KAAK,CACFoE,IAAI,CACH,GAAGjC,OAAO,WAAWY,QAAQ,QAAQ,EACrC;YACEsB,MAAM,EAAE,SAAS;YACjBrD,KAAK,EAAEF,IAAI,CAACC,SAAS,CAACC,KAAK,CAAC;YAC5B0D,UAAU,EAAE;cACVC,KAAK,EAAExE,UAAU,CAACyE,QAAQ,CAAC,CAAC;cAC5BC,KAAK,EAAE1E,UAAU,CAAC2E,QAAQ,CAAC,CAAC;cAC5BC,UAAU,EAAE5E,UAAU,CAAC6E,aAAa,CAAC,CAAC;cACtCC,aAAa,EAAE9E,UAAU,CAAC+E,gBAAgB,CAAC;YAC7C;UACF,CAAC,EACD;YAAEZ,OAAO,EAAE;cAAE,cAAc,EAAE;YAAmB;UAAE,CACpD,CAAC,CACAH,OAAO,CAAC,MAAM7D,SAAS,CAACiE,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC;QACDtC,mBAAmB;QACnBC;MACF,CAAC,CAAC;IACJ,CAAC;IAED,IAAIW,WAAW,EAAE;MACfO,iBAAiB,CAAC,CAAC;IACrB,CAAC,MAAM;MACL/C,cAAc,CAAC8E,WAAW,CAAC;QACzBC,KAAK,EAAE,mBAAmB;QAC1BC,OAAO,EAAE,sCAAsC;QAC/CC,WAAW,EAAE,QAAQ;QACrBC,UAAU,EAAE,QAAQ;QACpBC,SAAS,EAAEpC,iBAAiB;QAC5BqC,QAAQ,EAAEA,CAAA,KAAM,CAAC,CAAC;QAClB,GAAG1D;MACL,CAAC,CAAC;IACJ;EACF,CAAC,CAAC,OAAO2D,GAAG,EAAE;IACZzE,OAAO,CAACC,IAAI,CAAC,0BAA0B,EAAEwE,GAAG,CAAC;EAC/C;AACF,CAAC","ignoreList":[]}
@@ -7,6 +7,8 @@ export type OTAUpdateProps = {
7
7
  loaderOptions?: LoaderOptions;
8
8
  dialogOptions?: Omit<DialogOptions, 'onConfirm' | 'onCancel'>;
9
9
  baseUrl: string;
10
+ restartAfterInstall?: boolean;
11
+ restartDelay?: number;
10
12
  };
11
13
  export type OTAUpdateSuccessState = {
12
14
  bundleId: string;
@@ -15,5 +17,5 @@ export type OTAUpdateSuccessState = {
15
17
  installedAt: string;
16
18
  };
17
19
  export declare const consumeOTAUpdateSuccessState: () => Promise<OTAUpdateSuccessState | null>;
18
- export declare const checkOTAUpdate: ({ key, iosPackage, androidPackage, loaderOptions, dialogOptions, baseUrl, }: OTAUpdateProps) => Promise<void>;
20
+ export declare const checkOTAUpdate: ({ key, iosPackage, androidPackage, loaderOptions, dialogOptions, baseUrl, restartAfterInstall, restartDelay, }: OTAUpdateProps) => Promise<void>;
19
21
  //# sourceMappingURL=checkOTAUpdate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkOTAUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkOTAUpdate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAmCF,eAAO,MAAM,4BAA4B,6CAkBxC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,6EAOlC,cAAc,kBA+FhB,CAAC"}
1
+ {"version":3,"file":"checkOTAUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkOTAUpdate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAmCF,eAAO,MAAM,4BAA4B,6CAkBxC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,gHASlC,cAAc,kBA+FhB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-3rddigital-appupdate",
3
- "version": "1.0.13",
3
+ "version": "1.0.16",
4
4
  "description": "A React Native library for seamless over-the-air (OTA) updates with version checks, automatic bundle download, and customizable user prompts for iOS and Android.",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
package/scripts/bundle.js CHANGED
@@ -169,25 +169,6 @@ function findFirstXcodeProj(dir) {
169
169
  return null;
170
170
  }
171
171
 
172
- function walkFiles(dir, matcher, result = []) {
173
- if (!fs.existsSync(dir)) return result;
174
-
175
- const entries = fs.readdirSync(dir, { withFileTypes: true });
176
- for (const entry of entries) {
177
- const fullPath = path.join(dir, entry.name);
178
- if (entry.isDirectory()) {
179
- walkFiles(fullPath, matcher, result);
180
- continue;
181
- }
182
-
183
- if (matcher(fullPath)) {
184
- result.push(fullPath);
185
- }
186
- }
187
-
188
- return result;
189
- }
190
-
191
172
  function extractBracedBlock(content, startIndex) {
192
173
  const openIndex = content.indexOf('{', startIndex);
193
174
  if (openIndex === -1) return null;
@@ -553,12 +534,6 @@ function getIosTargetMetadata() {
553
534
  .map((configId) => configMap.get(configId))
554
535
  .filter(Boolean) ?? [];
555
536
 
556
- const configsByName = new Map(
557
- buildConfigs
558
- .filter((config) => config.name)
559
- .map((config) => [config.name, config])
560
- );
561
-
562
537
  const preferredConfig =
563
538
  buildConfigs.find(
564
539
  (config) => config.name === configList?.defaultName
@@ -568,14 +543,17 @@ function getIosTargetMetadata() {
568
543
 
569
544
  if (!preferredConfig) return null;
570
545
 
546
+ const buildConfigurationLabel = preferredConfig.name
547
+ ? ` [${preferredConfig.name}]`
548
+ : '';
549
+
571
550
  return {
572
551
  name: targetName,
573
- label: targetName,
552
+ label: `${targetName}${buildConfigurationLabel}`,
574
553
  appId: preferredConfig.appId ?? null,
575
554
  version: preferredConfig.version ?? null,
576
555
  productName: preferredConfig.productName ?? targetName,
577
556
  buildConfiguration: preferredConfig.name ?? null,
578
- configsByName,
579
557
  };
580
558
  })
581
559
  .filter(Boolean);
@@ -587,133 +565,38 @@ function getIosTargetMetadata() {
587
565
  );
588
566
 
589
567
  return {
590
- projectFiles,
591
568
  defaultConfig: uniqueTargets[0] ?? null,
592
569
  targets: uniqueTargets,
593
570
  };
594
571
  }
595
572
 
596
- function parseSchemeFile(filePath) {
597
- const content = fs.readFileSync(filePath, 'utf8');
598
- const schemeName = path.basename(filePath, '.xcscheme');
599
-
600
- const blueprintName =
601
- content.match(/BlueprintName\s*=\s*"([^"]+)"/)?.[1] ?? schemeName;
602
- const buildConfiguration =
603
- content.match(
604
- /ArchiveAction[^>]*buildConfiguration\s*=\s*"([^"]+)"/
605
- )?.[1] ??
606
- content.match(/LaunchAction[^>]*buildConfiguration\s*=\s*"([^"]+)"/)?.[1] ??
607
- content.match(
608
- /ProfileAction[^>]*buildConfiguration\s*=\s*"([^"]+)"/
609
- )?.[1] ??
610
- 'Release';
611
-
612
- return {
613
- scheme: schemeName,
614
- targetName: blueprintName,
615
- buildConfiguration,
616
- };
617
- }
618
-
619
- function getIosSchemeMetadata() {
620
- const iosMetadata = getIosTargetMetadata();
621
- if (!iosMetadata) return null;
622
-
623
- const schemeFiles = walkFiles(iosMetadata.projectFiles.iosDir, (filePath) =>
624
- filePath.endsWith('.xcscheme')
625
- );
626
-
627
- const targetsByName = new Map(
628
- iosMetadata.targets.map((target) => [target.name, target])
629
- );
630
-
631
- const schemes = schemeFiles
632
- .map(parseSchemeFile)
633
- .map((scheme) => {
634
- const target = targetsByName.get(scheme.targetName);
635
- if (!target) return null;
636
-
637
- const config = target.configsByName.get(scheme.buildConfiguration) ??
638
- target.configsByName.get('Release') ?? {
639
- appId: target.appId,
640
- version: target.version,
641
- productName: target.productName,
642
- name: target.buildConfiguration,
643
- };
644
-
645
- return {
646
- name: scheme.scheme,
647
- label: scheme.scheme,
648
- targetName: target.name,
649
- buildConfiguration: scheme.buildConfiguration,
650
- appId: config.appId ?? target.appId ?? null,
651
- version: config.version ?? target.version ?? null,
652
- productName: config.productName ?? target.productName,
653
- };
654
- })
655
- .filter(Boolean);
656
-
657
- const schemesByTargetName = new Map(
658
- schemes.map((scheme) => [scheme.targetName, scheme])
659
- );
660
-
661
- const mergedSchemes = iosMetadata.targets.map((target) => {
662
- const matchedScheme = schemesByTargetName.get(target.name);
663
- if (matchedScheme) {
664
- return matchedScheme;
665
- }
666
-
667
- return {
668
- name: target.name,
669
- label: `${target.label}${target.buildConfiguration ? ` [${target.buildConfiguration}]` : ''}`,
670
- targetName: target.name,
671
- buildConfiguration: target.buildConfiguration,
672
- appId: target.appId,
673
- version: target.version,
674
- productName: target.productName,
675
- };
676
- });
677
-
678
- const uniqueSchemes = mergedSchemes.filter(
679
- (scheme, index, allSchemes) =>
680
- allSchemes.findIndex((candidate) => candidate.name === scheme.name) ===
681
- index
682
- );
683
-
684
- return {
685
- defaultConfig: uniqueSchemes[0] ?? iosMetadata.defaultConfig,
686
- schemes: uniqueSchemes,
687
- };
688
- }
689
-
690
- async function getIosSchemeSelection() {
691
- const metadata = getIosSchemeMetadata();
573
+ async function getIosTargetSelection() {
574
+ const metadata = getIosTargetMetadata();
692
575
  if (!metadata) return null;
693
576
 
694
- if (metadata.schemes.length <= 1) {
577
+ if (metadata.targets.length <= 1) {
695
578
  return metadata.defaultConfig;
696
579
  }
697
580
 
698
- let selectedScheme;
699
- let isSchemeConfirmed = false;
581
+ let selectedTarget;
582
+ let isTargetConfirmed = false;
700
583
 
701
- while (!isSchemeConfirmed) {
702
- selectedScheme = await select({
703
- message: 'Select iOS scheme:',
704
- choices: metadata.schemes.map((scheme) => ({
705
- name: `${scheme.label} (${scheme.appId ?? 'unknown app id'} / ${scheme.version ?? 'unknown version'})`,
706
- value: scheme,
584
+ while (!isTargetConfirmed) {
585
+ selectedTarget = await select({
586
+ message: 'Select iOS target:',
587
+ choices: metadata.targets.map((target) => ({
588
+ name: `${target.label} (${target.appId ?? 'unknown app id'} / ${target.version ?? 'unknown version'})`,
589
+ value: target,
707
590
  })),
708
591
  });
709
592
 
710
- isSchemeConfirmed = await confirm({
711
- message: `Continue with iOS scheme ${selectedScheme.label ?? selectedScheme.name}?`,
593
+ isTargetConfirmed = await confirm({
594
+ message: `Continue with iOS target ${selectedTarget.label ?? selectedTarget.name}?`,
712
595
  default: true,
713
596
  });
714
597
  }
715
598
 
716
- return selectedScheme;
599
+ return selectedTarget;
717
600
  }
718
601
 
719
602
  function getPlatformAppVersion(platform, selection) {
@@ -725,7 +608,7 @@ function getPlatformAppVersion(platform, selection) {
725
608
  }
726
609
 
727
610
  if (platform === 'ios') {
728
- const metadata = getIosSchemeMetadata();
611
+ const metadata = getIosTargetMetadata();
729
612
  return metadata?.defaultConfig.version ?? null;
730
613
  }
731
614
 
@@ -773,7 +656,7 @@ async function getPlatformConfig(platform) {
773
656
  platform === 'android'
774
657
  ? await getAndroidFlavorSelection()
775
658
  : platform === 'ios'
776
- ? await getIosSchemeSelection()
659
+ ? await getIosTargetSelection()
777
660
  : null;
778
661
 
779
662
  if (platform === 'android' && selection?.label) {
@@ -784,7 +667,7 @@ async function getPlatformConfig(platform) {
784
667
 
785
668
  if (platform === 'ios' && selection?.label) {
786
669
  console.log(
787
- `🍎 Selected iOS scheme: ${selection.label} (${selection.appId ?? 'unknown app id'})`
670
+ `🍎 Selected iOS target: ${selection.label} (${selection.appId ?? 'unknown app id'})`
788
671
  );
789
672
  }
790
673
 
@@ -13,6 +13,8 @@ export type OTAUpdateProps = {
13
13
  loaderOptions?: LoaderOptions;
14
14
  dialogOptions?: Omit<DialogOptions, 'onConfirm' | 'onCancel'>;
15
15
  baseUrl: string;
16
+ restartAfterInstall?: boolean;
17
+ restartDelay?: number;
16
18
  };
17
19
 
18
20
  export type OTAUpdateSuccessState = {
@@ -82,6 +84,8 @@ export const checkOTAUpdate = async ({
82
84
  loaderOptions,
83
85
  dialogOptions,
84
86
  baseUrl,
87
+ restartAfterInstall = true,
88
+ restartDelay = 1000,
85
89
  }: OTAUpdateProps) => {
86
90
  try {
87
91
  const API_URL = baseUrl;
@@ -156,8 +160,8 @@ export const checkOTAUpdate = async ({
156
160
  )
157
161
  .finally(() => AppLoader.hide());
158
162
  },
159
- restartAfterInstall: true,
160
- restartDelay: 1000,
163
+ restartAfterInstall,
164
+ restartDelay,
161
165
  });
162
166
  };
163
167