Alive#121
Closed
zjcannon wants to merge 0 commit into
Closed
Conversation
threecee
pushed a commit
to threecee/LoopWorkspace
that referenced
this pull request
May 1, 2026
Workspace-level release infrastructure:
- bin/release.sh: one-command archive + upload, adapted from D.1a for the
multi-target LoopWorkspace (workspace+scheme, -allowProvisioningUpdates).
Reads LOOP_MARKETING_VERSION from VersionOverride.xcconfig (Loop's
existing single-source-of-truth via Info.plist substitution).
- ExportOptions.plist: app-store-connect distribution config, team
8YPHY526TJ, automatic signing.
- VersionOverride.xcconfig: LOOP_MARKETING_VERSION=1.0,
CURRENT_PROJECT_VERSION=1 (overridden at archive time by release.sh).
- .gitignore: excludes build/, *.xcarchive (in addition to existing *.ipa).
- OverrideAssetsLoop.xcassets/AppIcon.appiconset/: real Loop app icon
(light + dark + tinted, 1024x1024); modern Contents.json single-entry-
per-variant pattern (Xcode auto-generates sub-sizes). Uses Loop's
documented per-target asset-override path
("${SRCROOT}/../../OverrideAssetsLoop.xcassets" relative to Loop/Loop;
Scripts/build-derived-assets.sh resolves it).
- LoopWorkspace.xcworkspace/.../LoopWorkspace.xcscheme: explicit
BuildActionEntries for NightscoutServiceKit, OmniBLE, G7SensorKit
(exploratory; no functional change observed).
- docs/D1B_CRITICAL_ALERTS_PENDING.md: tracker for Critical Alerts
entitlement re-add when Apple approves (web-form request submitted
2026-05-01, typically 1-3 business days). Note: Loop upstream doesn't
ship this entitlement, so when approval lands the entitlement gets
ADDED, not re-added.
Submodule advance:
- NightscoutService → a724a9e: link LoopKitUI.framework to
NightscoutServiceKitUI target (buildFile entry existed but wasn't
in any Frameworks build phase; Sim Debug tolerated, Release archive
caught it).
Plan deviations from docs/superpowers/plans/2026-05-01-d1b-loop-testflight.md:
- Step 3.1: kept Loop's existing LOOP_MARKETING_VERSION variable (drives
Info.plist's CFBundleShortVersionString in all Loop submodule targets);
the plan's MARKETING_VERSION wouldn't have been picked up.
- Step 3.5 (strip Critical Alerts entitlement): SKIPPED. Loop upstream's
Loop/Loop/Loop.entitlements doesn't declare the entitlement.
- Step 3.7: AppIcon location moved to workspace-level
OverrideAssetsLoop.xcassets/ (the in-submodule paths
Loop/Loop/DerivedAssets.xcassets and DerivedAssetsOverride.xcassets are
both gitignored in Loop's .gitignore; the workspace-level override path
is the documented + tracked alternative).
KNOWN ISSUE — Phase 3 BLOCKED:
Smoke-test Release archive currently fails with:
WatchApp Extension/Bootstrap/WatchRemoteCommandBootstrap.swift:18:8:
error: unable to resolve module dependency: 'NightscoutServiceKit'
WatchApp Extension's (watchOS) Frameworks build phase links
NightscoutServiceKit.framework, and NightscoutServiceKit's target sets
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator watchos watchsimulator"
+ TARGETED_DEVICE_FAMILY = "1,2,4". But Xcode's implicit dep resolver
does NOT add NightscoutServiceKit to WatchApp Extension's resolved
deps (visible in build log target dep listing — OmniBLE + G7SensorKit
DO get resolved for watchOS, but NightscoutServiceKit doesn't).
Resulting watchOS build products (Release-watchos):
✓ G7SensorKit.framework
✓ LoopAlgorithmCore.framework
✓ LoopCore.framework
✓ LoopKit.framework
✓ OmniBLE.framework
✗ NightscoutServiceKit.framework ← never built for watchOS
Likely root cause: NightscoutService submodule's "add watchOS as
supported platform" change (B.3.a Phase 3.A) was sufficient for Sim
Debug builds (which only build for the Sim's platform) but missed
something needed for Xcode's implicit cross-project dep resolver to
trigger a watchOS build during a multi-platform iOS archive.
Likely fix: add explicit cross-project PBXTargetDependency from Loop's
WatchApp Extension target to NightscoutService.xcodeproj's
NightscoutServiceKit target. This requires non-trivial pbxproj surgery
(PBXContainerItemProxy + cross-project ref setup) and is essentially
B.3.a Phase 2.F's open task LoopKit#121 (TestFlight validation of iOS extraction).
Tag: d1b-phase3-partial
Next: see Phase 3 wrap-up note in handoff to Carl.
threecee-claude
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.