Skip to content

Alive#121

Closed
zjcannon wants to merge 0 commit into
LoopKit:mainfrom
zjcannon:alive
Closed

Alive#121
zjcannon wants to merge 0 commit into
LoopKit:mainfrom
zjcannon:alive

Conversation

@zjcannon

Copy link
Copy Markdown

No description provided.

@zjcannon zjcannon closed this Mar 16, 2024
@zjcannon zjcannon deleted the alive branch March 16, 2024 15:14
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
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.

1 participant