react-native-acoustic-connect-beta 19.1.12 → 19.1.14
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/CHANGELOG.md +10 -0
- package/README.md +25 -1
- package/android/src/main/assets/ConnectBasicConfig.properties +1 -1
- package/package.json +1 -1
- package/plugin/build/index.d.ts +2 -1
- package/plugin/build/index.d.ts.map +1 -1
- package/plugin/build/index.js +6 -1
- package/plugin/build/index.js.map +1 -1
- package/plugin/build/withConnectPodSources.d.ts +25 -0
- package/plugin/build/withConnectPodSources.d.ts.map +1 -0
- package/plugin/build/withConnectPodSources.js +92 -0
- package/plugin/build/withConnectPodSources.js.map +1 -0
- package/plugin/src/index.ts +5 -0
- package/plugin/src/withConnectPodSources.ts +72 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
## 19.1.14 (2026-10-26)
|
|
2
|
+
|
|
3
|
+
### Reverts
|
|
4
|
+
|
|
5
|
+
* Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/aipoweredmarketer/react-native-acoustic-connect-beta/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
|
|
6
|
+
## 19.1.13 (2026-10-26)
|
|
7
|
+
|
|
8
|
+
### Reverts
|
|
9
|
+
|
|
10
|
+
* Revert "Beta ReactNativeConnect build: 18.0.36" ([609ad7d](https://github.com/aipoweredmarketer/react-native-acoustic-connect-beta/commit/609ad7d3244ec06f27dced5864d40585c5b3c9cf))
|
|
1
11
|
## 19.1.12 (2026-10-22)
|
|
2
12
|
|
|
3
13
|
### Reverts
|
package/README.md
CHANGED
|
@@ -134,6 +134,26 @@ directories, and re-running either command is safe. After install, run
|
|
|
134
134
|
`npx acoustic-connect doctor` to validate the result — see
|
|
135
135
|
[Setup CLI](#setup-cli-acoustic-connect) below.
|
|
136
136
|
|
|
137
|
+
### Where the iOS Connect SDK is resolved from
|
|
138
|
+
|
|
139
|
+
The iOS Connect SDK pods are published to the Acoustic spec repo,
|
|
140
|
+
[`go-acoustic/PodSpecs`](https://github.com/go-acoustic/PodSpecs). CocoaPods
|
|
141
|
+
trunk becomes read-only on 2 December 2026 and receives no later versions.
|
|
142
|
+
A pod dependency cannot name its source, so list the repo near the top of
|
|
143
|
+
`ios/Podfile`:
|
|
144
|
+
|
|
145
|
+
```ruby
|
|
146
|
+
source 'https://github.com/go-acoustic/PodSpecs.git'
|
|
147
|
+
source 'https://cdn.cocoapods.org/'
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Keep the CDN line. Declaring any source disables CocoaPods' implicit CDN
|
|
151
|
+
default, and React Native's own pods resolve from the CDN. CocoaPods merges
|
|
152
|
+
versions across sources, so versions that exist only on trunk still resolve.
|
|
153
|
+
Without the PodSpecs line, existing installs keep working but cannot update
|
|
154
|
+
to SDK versions released after 2 December 2026. Expo apps get both lines from
|
|
155
|
+
the config plugin, see [Using with Expo SDK 56+](#using-with-expo-sdk-56).
|
|
156
|
+
|
|
137
157
|
### Where the Android Connect SDK is resolved from
|
|
138
158
|
|
|
139
159
|
You don't need to add any repositories. This package's `android/build.gradle`
|
|
@@ -325,9 +345,13 @@ During `expo prebuild` the plugin automatically:
|
|
|
325
345
|
all three processes share the same pending store;
|
|
326
346
|
- appends `ConnectNSE` and `ConnectNCE` targets to the generated `Podfile`,
|
|
327
347
|
each linking the same Connect SDK pod as the app.
|
|
348
|
+
- adds the Acoustic `go-acoustic/PodSpecs` spec repo as the first `source` in
|
|
349
|
+
the generated `Podfile`, plus the CocoaPods CDN when the Podfile declares no
|
|
350
|
+
sources, so the Connect SDK pods keep resolving after CocoaPods trunk
|
|
351
|
+
becomes read-only.
|
|
328
352
|
|
|
329
353
|
Re-running `expo prebuild` — with or without `--clean` — is idempotent: no
|
|
330
|
-
duplicate targets, entitlements,
|
|
354
|
+
duplicate targets, entitlements, Podfile entries, or sources.
|
|
331
355
|
|
|
332
356
|
The NCE renders notifications whose category matches
|
|
333
357
|
`ACOUSTIC_RICH_NOTIFICATION` or `ACTIONABLE_NOTIFICATION` (the categories the
|
package/package.json
CHANGED
|
@@ -228,7 +228,7 @@
|
|
|
228
228
|
"source": "src/index",
|
|
229
229
|
"summary": "react-native ios android tealeaf connect cxa wxca er enhanced-replay",
|
|
230
230
|
"types": "./lib/typescript/src/index.d.ts",
|
|
231
|
-
"version": "19.1.
|
|
231
|
+
"version": "19.1.14",
|
|
232
232
|
"workspaces": [
|
|
233
233
|
"example",
|
|
234
234
|
"Examples/bare-workflow"
|
package/plugin/build/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { withConnectNSE, type ConnectPluginProps } from './withConnectNSE';
|
|
|
3
3
|
import { withConnectNCE } from './withConnectNCE';
|
|
4
4
|
import { withConnectAndroidConfig, withConnectAndroidGoogleServicesMatch } from './withConnectAndroidConfig';
|
|
5
5
|
import { withConnectIosSigning } from './withConnectIosSigning';
|
|
6
|
+
import { withConnectPodSources } from './withConnectPodSources';
|
|
6
7
|
/**
|
|
7
8
|
* Expo Config Plugin for react-native-acoustic-connect-beta.
|
|
8
9
|
*
|
|
@@ -36,6 +37,6 @@ import { withConnectIosSigning } from './withConnectIosSigning';
|
|
|
36
37
|
*/
|
|
37
38
|
declare const withAcousticConnect: ConfigPlugin<ConnectPluginProps | void>;
|
|
38
39
|
export default withAcousticConnect;
|
|
39
|
-
export { withConnectNSE, withConnectNCE, withConnectIosSigning, withConnectAndroidConfig, withConnectAndroidGoogleServicesMatch, };
|
|
40
|
+
export { withConnectNSE, withConnectNCE, withConnectIosSigning, withConnectPodSources, withConnectAndroidConfig, withConnectAndroidGoogleServicesMatch, };
|
|
40
41
|
export type { ConnectPluginProps };
|
|
41
42
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,wBAAwB,EACxB,qCAAqC,EACtC,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,QAAA,MAAM,mBAAmB,EAAE,YAAY,CAAC,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,wBAAwB,EACxB,qCAAqC,EACtC,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,QAAA,MAAM,mBAAmB,EAAE,YAAY,CAAC,kBAAkB,GAAG,IAAI,CA0BhE,CAAA;AAED,eAAe,mBAAmB,CAAA;AAClC,OAAO,EACL,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,qCAAqC,GACtC,CAAA;AACD,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
|
package/plugin/build/index.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// be provided in an agreement with Acoustic, L.P. Any unauthorized copying or
|
|
8
8
|
// distribution of content from this file is prohibited.
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.withConnectAndroidGoogleServicesMatch = exports.withConnectAndroidConfig = exports.withConnectIosSigning = exports.withConnectNCE = exports.withConnectNSE = void 0;
|
|
10
|
+
exports.withConnectAndroidGoogleServicesMatch = exports.withConnectAndroidConfig = exports.withConnectPodSources = exports.withConnectIosSigning = exports.withConnectNCE = exports.withConnectNSE = void 0;
|
|
11
11
|
const withConnectNSE_1 = require("./withConnectNSE");
|
|
12
12
|
Object.defineProperty(exports, "withConnectNSE", { enumerable: true, get: function () { return withConnectNSE_1.withConnectNSE; } });
|
|
13
13
|
const withConnectNCE_1 = require("./withConnectNCE");
|
|
@@ -17,6 +17,8 @@ Object.defineProperty(exports, "withConnectAndroidConfig", { enumerable: true, g
|
|
|
17
17
|
Object.defineProperty(exports, "withConnectAndroidGoogleServicesMatch", { enumerable: true, get: function () { return withConnectAndroidConfig_1.withConnectAndroidGoogleServicesMatch; } });
|
|
18
18
|
const withConnectIosSigning_1 = require("./withConnectIosSigning");
|
|
19
19
|
Object.defineProperty(exports, "withConnectIosSigning", { enumerable: true, get: function () { return withConnectIosSigning_1.withConnectIosSigning; } });
|
|
20
|
+
const withConnectPodSources_1 = require("./withConnectPodSources");
|
|
21
|
+
Object.defineProperty(exports, "withConnectPodSources", { enumerable: true, get: function () { return withConnectPodSources_1.withConnectPodSources; } });
|
|
20
22
|
/**
|
|
21
23
|
* Expo Config Plugin for react-native-acoustic-connect-beta.
|
|
22
24
|
*
|
|
@@ -56,11 +58,14 @@ const withAcousticConnect = (config, props) => {
|
|
|
56
58
|
// sections the NCE mod relies on.
|
|
57
59
|
// - withConnectIosSigning must follow both so the ConnectNSE/ConnectNCE
|
|
58
60
|
// targets exist before it stamps DEVELOPMENT_TEAM onto them.
|
|
61
|
+
// - withConnectPodSources only touches the Podfile's `source` lines and is
|
|
62
|
+
// independent of the others.
|
|
59
63
|
// The Android mods are independent of that ordering.
|
|
60
64
|
const mods = [
|
|
61
65
|
withConnectNSE_1.withConnectNSE,
|
|
62
66
|
withConnectNCE_1.withConnectNCE,
|
|
63
67
|
withConnectIosSigning_1.withConnectIosSigning,
|
|
68
|
+
withConnectPodSources_1.withConnectPodSources,
|
|
64
69
|
withConnectAndroidConfig_1.withConnectAndroidConfig,
|
|
65
70
|
withConnectAndroidConfig_1.withConnectAndroidGoogleServicesMatch,
|
|
66
71
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,yDAAyD;AACzD,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,wDAAwD;;;AAGxD,qDAA0E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,yDAAyD;AACzD,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,wDAAwD;;;AAGxD,qDAA0E;AAsExE,+FAtEO,+BAAc,OAsEP;AArEhB,qDAAiD;AAsE/C,+FAtEO,+BAAc,OAsEP;AArEhB,yEAGmC;AAqEjC,yGAvEA,mDAAwB,OAuEA;AACxB,sHAvEA,gEAAqC,OAuEA;AArEvC,mEAA+D;AAkE7D,sGAlEO,6CAAqB,OAkEP;AAjEvB,mEAA+D;AAkE7D,sGAlEO,6CAAqB,OAkEP;AAhEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,mBAAmB,GAA4C,CACnE,MAAM,EACN,KAAK,EACL,EAAE;IACF,MAAM,aAAa,GACjB,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAEzD,8CAA8C;IAC9C,4EAA4E;IAC5E,6EAA6E;IAC7E,qCAAqC;IACrC,yEAAyE;IACzE,gEAAgE;IAChE,4EAA4E;IAC5E,gCAAgC;IAChC,qDAAqD;IACrD,MAAM,IAAI,GAA4C;QACpD,+BAAc;QACd,+BAAc;QACd,6CAAqB;QACrB,6CAAqB;QACrB,mDAAwB;QACxB,gEAAqC;KACtC,CAAA;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAA;AAC/E,CAAC,CAAA;AAED,kBAAe,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ConfigPlugin } from '@expo/config-plugins';
|
|
2
|
+
export declare const PODSPECS_SOURCE = "source 'https://github.com/go-acoustic/PodSpecs.git'";
|
|
3
|
+
export declare const CDN_SOURCE = "source 'https://cdn.cocoapods.org/'";
|
|
4
|
+
/**
|
|
5
|
+
* Puts the PodSpecs source at the top of `podfileContent`.
|
|
6
|
+
*
|
|
7
|
+
* `source` calls are evaluated in order, so prepending makes PodSpecs the
|
|
8
|
+
* first source. CocoaPods merges versions across sources, so versions that
|
|
9
|
+
* exist only on trunk still resolve.
|
|
10
|
+
*
|
|
11
|
+
* When the Podfile declares no source at all (the `expo prebuild` template),
|
|
12
|
+
* the CDN is added as well: declaring any source disables CocoaPods' implicit
|
|
13
|
+
* CDN default, and every other pod would stop resolving.
|
|
14
|
+
*
|
|
15
|
+
* Idempotent: a Podfile that already lists PodSpecs is returned unchanged,
|
|
16
|
+
* whether this mod or the developer added it.
|
|
17
|
+
*/
|
|
18
|
+
export declare function injectPodSources(podfileContent: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Expo Config Plugin mod that adds the PodSpecs source to the generated
|
|
21
|
+
* Podfile. Runs in the iOS dangerous-mod phase, after `expo prebuild` has
|
|
22
|
+
* written ios/Podfile.
|
|
23
|
+
*/
|
|
24
|
+
export declare const withConnectPodSources: ConfigPlugin<unknown>;
|
|
25
|
+
//# sourceMappingURL=withConnectPodSources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withConnectPodSources.d.ts","sourceRoot":"","sources":["../src/withConnectPodSources.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,sBAAsB,CAAA;AAQ1E,eAAO,MAAM,eAAe,yDAC4B,CAAA;AACxD,eAAO,MAAM,UAAU,wCAAwC,CAAA;AAK/D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAU/D;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAAY,CAAC,OAAO,CAkBpD,CAAA"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.withConnectPodSources = exports.injectPodSources = exports.CDN_SOURCE = exports.PODSPECS_SOURCE = void 0;
|
|
27
|
+
// Copyright (C) 2026 Acoustic, L.P. All rights reserved.
|
|
28
|
+
//
|
|
29
|
+
// NOTICE: This file contains material that is confidential and proprietary to
|
|
30
|
+
// Acoustic, L.P. and/or other developers. No license is granted under any
|
|
31
|
+
// intellectual or industrial property rights of Acoustic, L.P. except as may
|
|
32
|
+
// be provided in an agreement with Acoustic, L.P. Any unauthorized copying or
|
|
33
|
+
// distribution of content from this file is prohibited.
|
|
34
|
+
const config_plugins_1 = require("@expo/config-plugins");
|
|
35
|
+
const fs = __importStar(require("fs"));
|
|
36
|
+
const path = __importStar(require("path"));
|
|
37
|
+
// go-acoustic/PodSpecs is the Acoustic CocoaPods spec repo. CocoaPods trunk
|
|
38
|
+
// becomes read-only on 2 December 2026 and receives no later Connect SDK
|
|
39
|
+
// versions, so they are published there instead. A podspec dependency cannot
|
|
40
|
+
// name its source, so the app's Podfile has to list it.
|
|
41
|
+
exports.PODSPECS_SOURCE = "source 'https://github.com/go-acoustic/PodSpecs.git'";
|
|
42
|
+
exports.CDN_SOURCE = "source 'https://cdn.cocoapods.org/'";
|
|
43
|
+
const MARKER = '# @generated CocoaPods sources (react-native-acoustic-connect-beta)';
|
|
44
|
+
/**
|
|
45
|
+
* Puts the PodSpecs source at the top of `podfileContent`.
|
|
46
|
+
*
|
|
47
|
+
* `source` calls are evaluated in order, so prepending makes PodSpecs the
|
|
48
|
+
* first source. CocoaPods merges versions across sources, so versions that
|
|
49
|
+
* exist only on trunk still resolve.
|
|
50
|
+
*
|
|
51
|
+
* When the Podfile declares no source at all (the `expo prebuild` template),
|
|
52
|
+
* the CDN is added as well: declaring any source disables CocoaPods' implicit
|
|
53
|
+
* CDN default, and every other pod would stop resolving.
|
|
54
|
+
*
|
|
55
|
+
* Idempotent: a Podfile that already lists PodSpecs is returned unchanged,
|
|
56
|
+
* whether this mod or the developer added it.
|
|
57
|
+
*/
|
|
58
|
+
function injectPodSources(podfileContent) {
|
|
59
|
+
if (podfileContent.includes(exports.PODSPECS_SOURCE)) {
|
|
60
|
+
return podfileContent;
|
|
61
|
+
}
|
|
62
|
+
const declaresSources = /^\s*source\s+['"]/m.test(podfileContent);
|
|
63
|
+
const lines = [MARKER, exports.PODSPECS_SOURCE];
|
|
64
|
+
if (!declaresSources) {
|
|
65
|
+
lines.push(exports.CDN_SOURCE);
|
|
66
|
+
}
|
|
67
|
+
return `${lines.join('\n')}\n\n${podfileContent}`;
|
|
68
|
+
}
|
|
69
|
+
exports.injectPodSources = injectPodSources;
|
|
70
|
+
/**
|
|
71
|
+
* Expo Config Plugin mod that adds the PodSpecs source to the generated
|
|
72
|
+
* Podfile. Runs in the iOS dangerous-mod phase, after `expo prebuild` has
|
|
73
|
+
* written ios/Podfile.
|
|
74
|
+
*/
|
|
75
|
+
const withConnectPodSources = (config) => (0, config_plugins_1.withDangerousMod)(config, [
|
|
76
|
+
'ios',
|
|
77
|
+
async (c) => {
|
|
78
|
+
const podfilePath = path.join(c.modRequest.platformProjectRoot, 'Podfile');
|
|
79
|
+
if (!fs.existsSync(podfilePath)) {
|
|
80
|
+
throw new Error(`[react-native-acoustic-connect-beta] ios/Podfile not found at ${podfilePath}. ` +
|
|
81
|
+
'The CocoaPods sources mod runs after `expo prebuild` generates the ios/ directory.');
|
|
82
|
+
}
|
|
83
|
+
const current = fs.readFileSync(podfilePath, 'utf8');
|
|
84
|
+
const updated = injectPodSources(current);
|
|
85
|
+
if (updated !== current) {
|
|
86
|
+
fs.writeFileSync(podfilePath, updated, 'utf8');
|
|
87
|
+
}
|
|
88
|
+
return c;
|
|
89
|
+
},
|
|
90
|
+
]);
|
|
91
|
+
exports.withConnectPodSources = withConnectPodSources;
|
|
92
|
+
//# sourceMappingURL=withConnectPodSources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withConnectPodSources.js","sourceRoot":"","sources":["../src/withConnectPodSources.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAyD;AACzD,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,wDAAwD;AACxD,yDAA0E;AAC1E,uCAAwB;AACxB,2CAA4B;AAE5B,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,wDAAwD;AAC3C,QAAA,eAAe,GAC1B,sDAAsD,CAAA;AAC3C,QAAA,UAAU,GAAG,qCAAqC,CAAA;AAE/D,MAAM,MAAM,GACV,qEAAqE,CAAA;AAEvE;;;;;;;;;;;;;GAaG;AACH,SAAgB,gBAAgB,CAAC,cAAsB;IACrD,IAAI,cAAc,CAAC,QAAQ,CAAC,uBAAe,CAAC,EAAE;QAC5C,OAAO,cAAc,CAAA;KACtB;IACD,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACjE,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,uBAAe,CAAC,CAAA;IACvC,IAAI,CAAC,eAAe,EAAE;QACpB,KAAK,CAAC,IAAI,CAAC,kBAAU,CAAC,CAAA;KACvB;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,cAAc,EAAE,CAAA;AACnD,CAAC;AAVD,4CAUC;AAED;;;;GAIG;AACI,MAAM,qBAAqB,GAA0B,CAAC,MAAM,EAAE,EAAE,CACrE,IAAA,iCAAgB,EAAC,MAAM,EAAE;IACvB,KAAK;IACL,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAA;QAC1E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CACb,iEAAiE,WAAW,IAAI;gBAC9E,oFAAoF,CACvF,CAAA;SACF;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QACpD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,OAAO,KAAK,OAAO,EAAE;YACvB,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;SAC/C;QACD,OAAO,CAAC,CAAA;IACV,CAAC;CACF,CAAC,CAAA;AAlBS,QAAA,qBAAqB,yBAkB9B"}
|
package/plugin/src/index.ts
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
withConnectAndroidGoogleServicesMatch,
|
|
15
15
|
} from './withConnectAndroidConfig'
|
|
16
16
|
import { withConnectIosSigning } from './withConnectIosSigning'
|
|
17
|
+
import { withConnectPodSources } from './withConnectPodSources'
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Expo Config Plugin for react-native-acoustic-connect-beta.
|
|
@@ -59,11 +60,14 @@ const withAcousticConnect: ConfigPlugin<ConnectPluginProps | void> = (
|
|
|
59
60
|
// sections the NCE mod relies on.
|
|
60
61
|
// - withConnectIosSigning must follow both so the ConnectNSE/ConnectNCE
|
|
61
62
|
// targets exist before it stamps DEVELOPMENT_TEAM onto them.
|
|
63
|
+
// - withConnectPodSources only touches the Podfile's `source` lines and is
|
|
64
|
+
// independent of the others.
|
|
62
65
|
// The Android mods are independent of that ordering.
|
|
63
66
|
const mods: Array<ConfigPlugin<ConnectPluginProps>> = [
|
|
64
67
|
withConnectNSE,
|
|
65
68
|
withConnectNCE,
|
|
66
69
|
withConnectIosSigning,
|
|
70
|
+
withConnectPodSources,
|
|
67
71
|
withConnectAndroidConfig,
|
|
68
72
|
withConnectAndroidGoogleServicesMatch,
|
|
69
73
|
]
|
|
@@ -76,6 +80,7 @@ export {
|
|
|
76
80
|
withConnectNSE,
|
|
77
81
|
withConnectNCE,
|
|
78
82
|
withConnectIosSigning,
|
|
83
|
+
withConnectPodSources,
|
|
79
84
|
withConnectAndroidConfig,
|
|
80
85
|
withConnectAndroidGoogleServicesMatch,
|
|
81
86
|
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// Copyright (C) 2026 Acoustic, L.P. All rights reserved.
|
|
2
|
+
//
|
|
3
|
+
// NOTICE: This file contains material that is confidential and proprietary to
|
|
4
|
+
// Acoustic, L.P. and/or other developers. No license is granted under any
|
|
5
|
+
// intellectual or industrial property rights of Acoustic, L.P. except as may
|
|
6
|
+
// be provided in an agreement with Acoustic, L.P. Any unauthorized copying or
|
|
7
|
+
// distribution of content from this file is prohibited.
|
|
8
|
+
import { type ConfigPlugin, withDangerousMod } from '@expo/config-plugins'
|
|
9
|
+
import * as fs from 'fs'
|
|
10
|
+
import * as path from 'path'
|
|
11
|
+
|
|
12
|
+
// go-acoustic/PodSpecs is the Acoustic CocoaPods spec repo. CocoaPods trunk
|
|
13
|
+
// becomes read-only on 2 December 2026 and receives no later Connect SDK
|
|
14
|
+
// versions, so they are published there instead. A podspec dependency cannot
|
|
15
|
+
// name its source, so the app's Podfile has to list it.
|
|
16
|
+
export const PODSPECS_SOURCE =
|
|
17
|
+
"source 'https://github.com/go-acoustic/PodSpecs.git'"
|
|
18
|
+
export const CDN_SOURCE = "source 'https://cdn.cocoapods.org/'"
|
|
19
|
+
|
|
20
|
+
const MARKER =
|
|
21
|
+
'# @generated CocoaPods sources (react-native-acoustic-connect-beta)'
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Puts the PodSpecs source at the top of `podfileContent`.
|
|
25
|
+
*
|
|
26
|
+
* `source` calls are evaluated in order, so prepending makes PodSpecs the
|
|
27
|
+
* first source. CocoaPods merges versions across sources, so versions that
|
|
28
|
+
* exist only on trunk still resolve.
|
|
29
|
+
*
|
|
30
|
+
* When the Podfile declares no source at all (the `expo prebuild` template),
|
|
31
|
+
* the CDN is added as well: declaring any source disables CocoaPods' implicit
|
|
32
|
+
* CDN default, and every other pod would stop resolving.
|
|
33
|
+
*
|
|
34
|
+
* Idempotent: a Podfile that already lists PodSpecs is returned unchanged,
|
|
35
|
+
* whether this mod or the developer added it.
|
|
36
|
+
*/
|
|
37
|
+
export function injectPodSources(podfileContent: string): string {
|
|
38
|
+
if (podfileContent.includes(PODSPECS_SOURCE)) {
|
|
39
|
+
return podfileContent
|
|
40
|
+
}
|
|
41
|
+
const declaresSources = /^\s*source\s+['"]/m.test(podfileContent)
|
|
42
|
+
const lines = [MARKER, PODSPECS_SOURCE]
|
|
43
|
+
if (!declaresSources) {
|
|
44
|
+
lines.push(CDN_SOURCE)
|
|
45
|
+
}
|
|
46
|
+
return `${lines.join('\n')}\n\n${podfileContent}`
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Expo Config Plugin mod that adds the PodSpecs source to the generated
|
|
51
|
+
* Podfile. Runs in the iOS dangerous-mod phase, after `expo prebuild` has
|
|
52
|
+
* written ios/Podfile.
|
|
53
|
+
*/
|
|
54
|
+
export const withConnectPodSources: ConfigPlugin<unknown> = (config) =>
|
|
55
|
+
withDangerousMod(config, [
|
|
56
|
+
'ios',
|
|
57
|
+
async (c) => {
|
|
58
|
+
const podfilePath = path.join(c.modRequest.platformProjectRoot, 'Podfile')
|
|
59
|
+
if (!fs.existsSync(podfilePath)) {
|
|
60
|
+
throw new Error(
|
|
61
|
+
`[react-native-acoustic-connect-beta] ios/Podfile not found at ${podfilePath}. ` +
|
|
62
|
+
'The CocoaPods sources mod runs after `expo prebuild` generates the ios/ directory.'
|
|
63
|
+
)
|
|
64
|
+
}
|
|
65
|
+
const current = fs.readFileSync(podfilePath, 'utf8')
|
|
66
|
+
const updated = injectPodSources(current)
|
|
67
|
+
if (updated !== current) {
|
|
68
|
+
fs.writeFileSync(podfilePath, updated, 'utf8')
|
|
69
|
+
}
|
|
70
|
+
return c
|
|
71
|
+
},
|
|
72
|
+
])
|