diff --git a/.changeset/gold-loops-live.md b/.changeset/gold-loops-live.md new file mode 100644 index 00000000..9e92cde7 --- /dev/null +++ b/.changeset/gold-loops-live.md @@ -0,0 +1,5 @@ +--- +'@callstack/brownfield-cli': minor +--- + +keep only one reference of xcframeworks when spm enabled diff --git a/packages/cli/src/brownfield/utils/__tests__/createLocalSpmPackage.test.ts b/packages/cli/src/brownfield/utils/__tests__/createLocalSpmPackage.test.ts index 4312a291..77c4fec1 100644 --- a/packages/cli/src/brownfield/utils/__tests__/createLocalSpmPackage.test.ts +++ b/packages/cli/src/brownfield/utils/__tests__/createLocalSpmPackage.test.ts @@ -59,7 +59,7 @@ describe('createLocalSpmPackage', () => { ).toBe(true); expect( fs.existsSync(path.join(tempDir, 'BrownfieldLib.xcframework')) - ).toBe(true); + ).toBe(false); const readmePath = path.join(tempDir, 'README.md'); expect(fs.existsSync(readmePath)).toBe(true); diff --git a/packages/cli/src/brownfield/utils/__tests__/prepareLocalSpmArtifacts.test.ts b/packages/cli/src/brownfield/utils/__tests__/prepareLocalSpmArtifacts.test.ts index ddd4859a..d6c55745 100644 --- a/packages/cli/src/brownfield/utils/__tests__/prepareLocalSpmArtifacts.test.ts +++ b/packages/cli/src/brownfield/utils/__tests__/prepareLocalSpmArtifacts.test.ts @@ -46,7 +46,7 @@ describe('prepareLocalSpmArtifacts', () => { fs.rmSync(tempDir, { recursive: true, force: true }); }); - it('copies xcframeworks into spm-artifacts and removes embedded code signature data', () => { + it('moves xcframeworks into spm-artifacts and removes embedded code signature data', () => { createSignedMockXcframework(tempDir, 'React'); const spmArtifactsDir = prepareLocalSpmArtifacts({ @@ -82,28 +82,7 @@ describe('prepareLocalSpmArtifacts', () => { ['--remove-signature', path.join(copiedFrameworkDir, 'React')], expect.objectContaining({ stdio: 'pipe' }) ); - expect( - fs.existsSync( - path.join( - tempDir, - 'React.xcframework', - '_CodeSignature', - 'CodeResources' - ) - ) - ).toBe(true); - expect( - fs.existsSync( - path.join( - tempDir, - 'React.xcframework', - 'ios-arm64_x86_64-simulator', - 'React.framework', - '_CodeSignature', - 'CodeResources' - ) - ) - ).toBe(true); + expect(fs.existsSync(path.join(tempDir, 'React.xcframework'))).toBe(false); }); it('ignores remove-signature errors for unsigned binaries', () => { diff --git a/packages/cli/src/brownfield/utils/createLocalSpmPackage.ts b/packages/cli/src/brownfield/utils/createLocalSpmPackage.ts index cefaa9a0..5be41f4b 100644 --- a/packages/cli/src/brownfield/utils/createLocalSpmPackage.ts +++ b/packages/cli/src/brownfield/utils/createLocalSpmPackage.ts @@ -148,7 +148,7 @@ ${frameworks} 1. In Xcode, choose **File > Add Package Dependencies...** 2. Click **Add Local...** -3. Select this folder, the one containing both \`Package.swift\` and the \`*.xcframework\` artifacts +3. Select this folder, the one containing \`Package.swift\` and the \`spm-artifacts\` directory 4. Add the \`${libraryName}\` library product to your app target ## Troubleshooting diff --git a/packages/cli/src/brownfield/utils/prepareLocalSpmArtifacts.ts b/packages/cli/src/brownfield/utils/prepareLocalSpmArtifacts.ts index f74b9ddb..88144a4e 100644 --- a/packages/cli/src/brownfield/utils/prepareLocalSpmArtifacts.ts +++ b/packages/cli/src/brownfield/utils/prepareLocalSpmArtifacts.ts @@ -109,7 +109,7 @@ export function prepareLocalSpmArtifacts({ const sourcePath = path.join(packageDir, `${targetName}.xcframework`); const destinationPath = path.join(spmArtifactsDir, `${targetName}.xcframework`); - fs.cpSync(sourcePath, destinationPath, { recursive: true }); + fs.renameSync(sourcePath, destinationPath); normalizeCopiedXcframeworkSignature(destinationPath); }