@makefully/adaptfully 3.16.0 → 3.16.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/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/lib/node/archive.js +2 -1
- package/lib/node/deploy.js +5 -1
- package/lib/node/index.js +1 -0
- package/lib/node/pipeline.js +13 -0
- package/lib/node/registrations.js +24 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## 3.16.1 — 2026-09-03
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **`adaptfully build` signing credentials** — Capacitor/Cordova zip builds now package `assets/meta/deployments/<canonical>/` (e.g. `ios-dev` → `ios`) so Wrapfully can sign device IPAs. Previously only `release` shipped deployment folders, so `ios:dev-build` arrived on the Mac without `apple/development.*`.
|
|
10
|
+
|
|
5
11
|
## 3.16.0 — 2026-09-02
|
|
6
12
|
|
|
7
13
|
### Added
|
package/README.md
CHANGED
|
@@ -619,7 +619,7 @@ assets/meta/deployments/<deployment>/
|
|
|
619
619
|
apple/development.mobileprovision # ios-dev device
|
|
620
620
|
```
|
|
621
621
|
|
|
622
|
-
The `.p12` passphrase must match `MAC_KEYCHAIN_PASSWORD` on the Mac Wrapfully host. Team ID and profile UUID are read from the `.mobileprovision`. Enable **Sign in with Apple** on the App ID when using Capgo Apple auth.
|
|
622
|
+
`adaptfully build` (zip-only) still packages this deployment folder for Capacitor/Cordova so device debug builds can sign. The `.p12` passphrase must match `MAC_KEYCHAIN_PASSWORD` on the Mac Wrapfully host. Team ID and profile UUID are read from the `.mobileprovision`. Enable **Sign in with Apple** on the App ID when using Capgo Apple auth.
|
|
623
623
|
|
|
624
624
|
Optional `build.json` may still be present for tooling compatibility; Capacitor does not require its `ios.*` code-sign fields.
|
|
625
625
|
|
package/lib/node/archive.js
CHANGED
|
@@ -144,7 +144,8 @@ function createZipStream(deployFolder, contents, options = {}) {
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
/**
|
|
147
|
-
* Game source zip for /build and
|
|
147
|
+
* Game source zip for /build (and legacy callers). Include `deploymentDirs` when
|
|
148
|
+
* the builder needs signing credentials (e.g. Capacitor ios-dev).
|
|
148
149
|
*
|
|
149
150
|
* @param {string} deployFolder
|
|
150
151
|
* @param {string} contents
|
package/lib/node/deploy.js
CHANGED
|
@@ -71,7 +71,11 @@ export async function send(gameId, contents, server, stage, family, deployFolder
|
|
|
71
71
|
} else if (stage === 'release') {
|
|
72
72
|
archiveStream = createReleaseArchive(deployFolder, contents, options.deploymentDirs ?? [], { log });
|
|
73
73
|
} else {
|
|
74
|
-
archiveStream = createSourceArchive(deployFolder, contents, {
|
|
74
|
+
archiveStream = createSourceArchive(deployFolder, contents, {
|
|
75
|
+
log,
|
|
76
|
+
publishDir: options.publishDir,
|
|
77
|
+
deploymentDirs: options.deploymentDirs,
|
|
78
|
+
});
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
const url = resolveWrapfullyUrl(server, stage, family, gameId, platformKey, options.deploymentKey);
|
package/lib/node/index.js
CHANGED
package/lib/node/pipeline.js
CHANGED
|
@@ -4,6 +4,7 @@ import { send } from './deploy.js';
|
|
|
4
4
|
import { resolveBuildArtifactDir } from './artifacts.js';
|
|
5
5
|
import { prebuildPlatform } from './prebuild.js';
|
|
6
6
|
import {
|
|
7
|
+
resolveBuildCredentialDirs,
|
|
7
8
|
resolveBuildSpec,
|
|
8
9
|
resolveDeploymentsForPlatform,
|
|
9
10
|
resolvePublishDir,
|
|
@@ -130,6 +131,9 @@ export async function runAdaptfullyStage(stage, platformKey, options) {
|
|
|
130
131
|
for (const deploymentKey of deployments) {
|
|
131
132
|
const publishDir = deploymentKey === 'zip' ? undefined : resolvePublishDir(deploymentKey);
|
|
132
133
|
const wrapStage = stage === 'deploy' ? 'deploy' : 'build';
|
|
134
|
+
const deploymentDirs = wrapStage === 'build'
|
|
135
|
+
? resolveBuildCredentialDirs(platformKey, pkg)
|
|
136
|
+
: [];
|
|
133
137
|
|
|
134
138
|
log(
|
|
135
139
|
`adaptfully: ${stage} ${platformKey} → `
|
|
@@ -137,6 +141,14 @@ export async function runAdaptfullyStage(stage, platformKey, options) {
|
|
|
137
141
|
+ `via Wrapfully /${wrapfullyRoute}/${wrapStage} (${buildSpec.family})`,
|
|
138
142
|
);
|
|
139
143
|
|
|
144
|
+
if (deploymentDirs.length) {
|
|
145
|
+
log(
|
|
146
|
+
`adaptfully: build signing credentials → ${
|
|
147
|
+
deploymentDirs.map((dir) => path.resolve(dir)).join(', ')
|
|
148
|
+
}`,
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
|
|
140
152
|
await send(
|
|
141
153
|
gameId,
|
|
142
154
|
contents,
|
|
@@ -149,6 +161,7 @@ export async function runAdaptfullyStage(stage, platformKey, options) {
|
|
|
149
161
|
{
|
|
150
162
|
log,
|
|
151
163
|
publishDir,
|
|
164
|
+
deploymentDirs,
|
|
152
165
|
platformKey,
|
|
153
166
|
deploymentKey: wrapStage === 'deploy' ? deploymentKey : undefined,
|
|
154
167
|
artifactPath,
|
|
@@ -345,6 +345,30 @@ export function resolvePublishDir(deploymentKey, metaDir = 'assets/meta') {
|
|
|
345
345
|
return path.join(metaDir, 'deployments', deploymentKey);
|
|
346
346
|
}
|
|
347
347
|
|
|
348
|
+
const BUILD_SIGNING_PACKAGERS = new Set(['capacitor', 'cordova']);
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Credential folders to ship with `adaptfully build` (zip artifact) when the
|
|
352
|
+
* Wrapfully builder needs signing material — e.g. ios-dev → deployments/ios.
|
|
353
|
+
* Upload-only targets (SFTP, Play, ASC) are not included.
|
|
354
|
+
*
|
|
355
|
+
* @param {string} platformKey
|
|
356
|
+
* @param {object} pkg
|
|
357
|
+
* @param {string} [metaDir='assets/meta']
|
|
358
|
+
* @returns {string[]} Absolute paths to existing deployment dirs
|
|
359
|
+
*/
|
|
360
|
+
export function resolveBuildCredentialDirs(platformKey, pkg, metaDir = 'assets/meta') {
|
|
361
|
+
const platform = pkg?.config?.platforms?.[platformKey];
|
|
362
|
+
const packager = platform?.packager;
|
|
363
|
+
if (!BUILD_SIGNING_PACKAGERS.has(packager)) {
|
|
364
|
+
return [];
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
const credentialKey = DEFAULT_BUILDER_PLATFORMS[platformKey] ?? platformKey;
|
|
368
|
+
const dir = path.resolve(resolvePublishDir(credentialKey, metaDir));
|
|
369
|
+
return fs.existsSync(dir) ? [dir] : [];
|
|
370
|
+
}
|
|
371
|
+
|
|
348
372
|
const ELECTRON_TARGETS = new Set([
|
|
349
373
|
'win', 'win-dev', 'mac', 'mac-dev', 'linux', 'linux-dev',
|
|
350
374
|
]);
|