Skip to content

Splitting SwiftLeeds & KotlinLeeds Build Configuration#93

Open
adamoxley wants to merge 3 commits intomainfrom
feature/kotlinleeds-support
Open

Splitting SwiftLeeds & KotlinLeeds Build Configuration#93
adamoxley wants to merge 3 commits intomainfrom
feature/kotlinleeds-support

Conversation

@adamoxley
Copy link
Copy Markdown
Collaborator

Summary

  • Support for both SwiftLeeds and KotlinLeeds apps via xcconfig build configurations defining separate bundle IDs, API endpoints, assets, and entitlements
  • ConferenceConfig reads conference-specific values (API host, contact email, app group) from Info.plist, replaces (most of them anyways) hardcoded swiftleeds.co.uk / SwiftLeeds references in the codebase
  • Separate SwiftLeedsAssets/KotlinLeedsAssets and SwiftLeedsColors/KotlinLeedsColors asset catalogs for main app, Widget, and AppClip, swapped via EXCLUDED_SOURCE_FILE_NAMES (hence the huge changes and all the images/assets in this PR)
  • KotlinLeeds Xcode scheme with Debug-KotlinLeeds/Release-KotlinLeeds build configurations across all targets
  • EXCLUDED_SOURCE_FILE_NAMES - swaps asset catalogs per conference. Any new asset catalog with SwiftLeeds or KotlinLeeds in the name will be excluded from the opposite scheme
  • Fastlane scripts updated

Concerns

  • Entitlements - New entitlements files for KotlinLeeds with kotlinleeds.co.uk associated domains and group.uk.co.kotlinleeds app group. Need matching App ID configuration in the Apple Developer portal before signing works on real devices
  • Bundle IDs - KotlinLeeds configs use uk.co.kotlinleeds.* bundle IDs. No provisioning profiles or App Store Connect entries exist yet

@adamoxley adamoxley self-assigned this Mar 27, 2026
project: "SwiftLeeds.xcodeproj",
configuration: options[:configuration],
scheme: "SwiftLeeds",
scheme: options[:scheme] || "SwiftLeeds",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this default to SwiftLeeds if no scheme option is available?

xcargs: "-skipPackagePluginValidation"
)
lane :build_swiftleeds do
build(scheme: "SwiftLeeds", configuration: "Debug")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're removing the xcargs: "-skipPackagePluginValidation" parameter here -- is it no longer needed?


desc "Build KotlinLeeds scheme with Debug Configuration"
lane :build_kotlinleeds do
build(scheme: "KotlinLeeds", configuration: "Debug-KotlinLeeds")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As with here comment here, do we no longer need the xcargs parameter?

0B910A352A48FEC100648B32 /* SponsorTileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA57DE4E2875B09900911F03 /* SponsorTileView.swift */; };
0B910A372A49D07700648B32 /* Sponsor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B910A362A49D07700648B32 /* Sponsor.swift */; };
0B910A382A49D09300648B32 /* Sponsor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B910A362A49D07700648B32 /* Sponsor.swift */; };
13707030C1082B933C28151D /* SwiftLeedsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4301D0D3F1C8979276E77084 /* SwiftLeedsAssets.xcassets */; };
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to note, we'll eventually be deleting these asset files for both apps once we migrate to the new versions in Sources/SharedAssets

That should help with avoiding having to mess with .pbxproj files 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants