diff --git a/src/core/bazel.test.ts b/src/core/bazel.test.ts index 0090d83..d7bf22c 100644 --- a/src/core/bazel.test.ts +++ b/src/core/bazel.test.ts @@ -148,12 +148,12 @@ describe('Bazel argument helpers', () => { expect(modeArgs('release_with_symbols')).toEqual(['--config=ios_release', '--config=generate_dsym']); expect(platformArgs('none')).toEqual([]); - expect(platformArgs('simulator')).toEqual(['--ios_multi_cpus=sim_arm64']); - expect(platformArgs('device')).toEqual(['--ios_multi_cpus=arm64']); - expect(platformArgs('macos')).toEqual([]); - expect(platformArgs('tvos')).toEqual(['--tvos_cpus=sim_arm64']); - expect(platformArgs('watchos')).toEqual(['--watchos_cpus=arm64']); - expect(platformArgs('visionos')).toEqual(['--visionos_cpus=sim_arm64']); + expect(platformArgs('simulator')).toEqual(['--platforms=@build_bazel_apple_support//platforms:ios_sim_arm64', '--ios_multi_cpus=sim_arm64']); + expect(platformArgs('device')).toEqual(['--platforms=@build_bazel_apple_support//platforms:ios_arm64', '--ios_multi_cpus=arm64']); + expect(platformArgs('macos')).toEqual(['--platforms=@build_bazel_apple_support//platforms:darwin_arm64']); + expect(platformArgs('tvos')).toEqual(['--platforms=@build_bazel_apple_support//platforms:tvos_sim_arm64', '--tvos_cpus=sim_arm64']); + expect(platformArgs('watchos')).toEqual(['--platforms=@build_bazel_apple_support//platforms:watchos_arm64', '--watchos_cpus=arm64']); + expect(platformArgs('visionos')).toEqual(['--platforms=@build_bazel_apple_support//platforms:visionos_sim_arm64', '--visionos_cpus=sim_arm64']); }); it('maps simulator and config options to Bazel flags', () => { @@ -181,6 +181,7 @@ describe('Bazel argument helpers', () => { ).toEqual([ 'build', '--config=debug', + '--platforms=@build_bazel_apple_support//platforms:ios_sim_arm64', '--ios_multi_cpus=sim_arm64', '--ios_simulator_device=iPhone 16 Pro', '--config=local', @@ -202,6 +203,7 @@ describe('Bazel argument helpers', () => { ).toEqual([ 'build', '--config=ios_release', + '--platforms=@build_bazel_apple_support//platforms:ios_arm64', '--ios_multi_cpus=arm64', '//:MyApp', ]); diff --git a/src/core/bazel.ts b/src/core/bazel.ts index e46b672..c8c5a5e 100644 --- a/src/core/bazel.ts +++ b/src/core/bazel.ts @@ -72,17 +72,17 @@ export function platformArgs(platform?: BuildPlatform): string[] { case 'none': return []; case 'simulator': - return ['--ios_multi_cpus=sim_arm64']; + return ['--platforms=@build_bazel_apple_support//platforms:ios_sim_arm64', '--ios_multi_cpus=sim_arm64']; case 'device': - return ['--ios_multi_cpus=arm64']; + return ['--platforms=@build_bazel_apple_support//platforms:ios_arm64', '--ios_multi_cpus=arm64']; case 'macos': - return []; + return ['--platforms=@build_bazel_apple_support//platforms:darwin_arm64']; case 'tvos': - return ['--tvos_cpus=sim_arm64']; + return ['--platforms=@build_bazel_apple_support//platforms:tvos_sim_arm64', '--tvos_cpus=sim_arm64']; case 'watchos': - return ['--watchos_cpus=arm64']; + return ['--platforms=@build_bazel_apple_support//platforms:watchos_arm64', '--watchos_cpus=arm64']; case 'visionos': - return ['--visionos_cpus=sim_arm64']; + return ['--platforms=@build_bazel_apple_support//platforms:visionos_sim_arm64', '--visionos_cpus=sim_arm64']; default: { const _exhaustive: never = p; throw new Error(`Unknown platform: ${_exhaustive}`); diff --git a/src/tools/handlers/build.ts b/src/tools/handlers/build.ts index ffd7987..5f0dcc3 100644 --- a/src/tools/handlers/build.ts +++ b/src/tools/handlers/build.ts @@ -81,7 +81,8 @@ export const definitions: ToolDefinition[] = [ }, platform: { type: 'string', - enum: ['none', 'simulator', 'device'], + enum: ['none', 'simulator', 'device', 'macos', 'tvos', 'watchos', 'visionos'], + description: 'Target platform. Use "simulator" for iOS sim, "device" for iOS device, "macos" for macOS, or "none" to skip platform flags.', }, simulatorName: { type: 'string' }, simulatorVersion: { type: 'string' },