Repository navigation
Xcode Cloud Docs - #2347
Xcode Cloud Docs#2347Camji55 wants to merge 4 commits into
Conversation
marionbarker
left a comment
There was a problem hiding this comment.
In all other places in this file, where the syntax
DEVELOPMENT_TEAM = "$(LOOP_DEVELOPMENT_TEAM)";
is used, you see this syntax:
CODE_SIGN_IDENTITY = "$(LOOP_CODE_SIGN_IDENTITY_DEBUG)";
CODE_SIGN_STYLE = "$(LOOP_CODE_SIGN_STYLE)";
DEVELOPMENT_TEAM = "$(LOOP_DEVELOPMENT_TEAM)";
--
CODE_SIGN_IDENTITY = "$(LOOP_CODE_SIGN_IDENTITY_RELEASE)";
CODE_SIGN_STYLE = "$(LOOP_CODE_SIGN_STYLE)";
DEVELOPMENT_TEAM = "$(LOOP_DEVELOPMENT_TEAM)";
Where those environment variables are configured in Loop.xcconfig
// Code signing and provisioning [DEFAULT]
LOOP_CODE_SIGN_IDENTITY_DEBUG = Apple Development
LOOP_CODE_SIGN_IDENTITY_RELEASE = Apple Development
LOOP_CODE_SIGN_STYLE = Automatic
I expect @ps2 will request that you follow that model, so I am requesting changes. If he says it is not important, then I will withdraw my request for changes.
TestThe functional behavior is independent of whether "Apple Development" is entered directly for the CODE_SIGN_IDENTITY, so these tests are valid and successful. ✅ Mac-Xcode build: no issues building with this change. |
|
Having a write up for how to use Xcode Cloud will be excellent. Thank you for doing this. |
|
@marionbarker thank you for testing! Yes, with this change there can be some variables removed from the xcconfig in the LoopWorkspace repo including: LOOP_CODE_SIGN_IDENTITY_DEBUG Let’s definitely let @ps2 chime in! Edit: No changes to LoopWorkspace needed |
ps2
left a comment
There was a problem hiding this comment.
Thanks! LGMT. Removing those other unused settings would be nice too.
I want to be clear which settings should be removed. Loop.xcconfig has these 3 lines: I was suggesting that those variables be used in @Camji55 refers to those being in the LoopWorkspace: |
|
@marionbarker & @ps2 I added a doc on how to get Xcode Cloud running with help from Claude. Lmk if y'all think it's sufficient. I think it's important to note this change does not effect local builds/browser builds. It might be worth another regression test @marionbarker, as it's been a bit since it was tested last. |
|
I've got a mirroring PR targeting |
ps2
left a comment
There was a problem hiding this comment.
Thanks for writing this up, @Camji55! I checked the doc against the current project settings, and it's close. A few things to fix before merging:
- App group name. Step 3 says the app group is
group.com.<TEAMID>.loopkit.LoopGroup. The project builds it asgroup.$(MAIN_APP_BUNDLE_IDENTIFIER)Group, so it's actuallygroup.com.<TEAMID>.loopkitGroup. - Clone branch. Step 1 clones
--branch=dev. Most people should buildmain(the release branch);dev/next-devcould be mentioned as an option for testers. - PR description. It still describes enabling automatic code signing, but the diff is now docs only. Signing is already automatic with "Apple Development" on both
dev(via theLOOP_CODE_SIGN_*variables) andnext-dev(hardcoded), so the description should just say it adds the Xcode Cloud guide. - Formatting. In Step 4, "TestFlight (Internal Testing Only)" ended up on a broken nested bullet under Actions; it reads better inline ("an Archive action with distribution preparation set to TestFlight (Internal Testing Only)"). There's also a missing blank line before the
---after the "Keeping current" list.
Checked and correct: the bundle ID derives from DEVELOPMENT_TEAM, LoopConfigOverride.xcconfig ends with the commented LOOP_DEVELOPMENT_TEAM line, LoopWorkspace is a shared scheme (and the right one, since Loop builds without the plugins), the listed package dependencies match Package.resolved, and the 25 compute hours / 90-day TestFlight expiry are right.
Not blocking, but worth considering:
- The central claim is that Xcode Cloud supplies the team even though
LOOP_DEVELOPMENT_TEAMis empty in the repo, so nothing needs committing. That matches your experience, but it would be good to confirm once from a fresh fork. Loop/Documentation/only holds images today, so this may be hard to find. A link from LoopDocs or the LoopWorkspace README would help people discover it.- @marionbarker's earlier change request was about hardcoding the signing settings in the project file, which is no longer part of this diff, so it can probably be dismissed once she's had a look.
- This doc is identical to #2476. If
next-devpicks updevchanges when they're synced, merging just one would avoid two copies drifting apart.
This change allows building and distributing with Xcode Cloud which I have been doing on my personal branch for some time now. The intent is that existing workflows for browser builds with GitHub Actions and all Continuous Integration actions should still work as-is since Fastlane should override these code-signing settings. This will need some testing before it gets adopted but having the option to build and deploy within Xcode itself would be beneficial for users who'd like to take advantage of it especially if other options still remain available.
I'm also working on a write up on how to setup Xcode Cloud as an alternative to GitHub Actions for browser builds.
Please let me know what I can do to help verify all Fastlane and GitHub Actions remain working!
devclone of #2476