fix: remove broken ad-hoc codesign + halve build time via single universal archive - #4
Conversation
…DerivedData cache - Remove codesign --force --deep from Create DMGs: was creating invalid signature causing 'damaged' Gatekeeper error on macOS Sequoia even after quarantine removal - Remove separate arm64 xcodebuild archive: derive arm64 via lipo -thin from universal instead (same approach as x86_64), halving total compile time ~12min -> ~6min - Add DerivedData cache for Release builds (separate key from Debug CI) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 46 minutes and 51 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughリリースワークフローがDerivedDataキャッシュの活用によりビルド時間を短縮し、arm64アーカイブ生成をlipo統合へ統一し、DMG作成前のコード署名検証処理を削除して構成が簡素化されました。 Changesリリースワークフロー最適化
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR adjusts the macOS release workflow to avoid broken ad-hoc deep signing (which can trigger Gatekeeper “damaged or incomplete” errors) and to speed up release builds by compiling only once and deriving per-arch archives from a universal archive.
Changes:
- Add a Release-specific DerivedData cache entry to speed up reruns.
- Remove the separate arm64
xcodebuild archiveand instead create arm64/x86_64 archives by thinning the universal archive withlipo. - Remove ad-hoc
codesign --deepand associatedspctlverification from the DMG staging step.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| path: ~/Library/Developer/Xcode/DerivedData | ||
| key: ${{ runner.os }}-derived-data-release-${{ hashFiles('perch.xcodeproj/project.pbxproj') }} | ||
| restore-keys: | |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…dView RootIslandView now routes expanded state to ExpandedIslandView (preset-driven widget composition: tab bar + NowPlayingCard + AIUsageWidget footer per Image #4). Compact state renders the new NowPlayingCompactContent, which extracts the pill HStack (artwork + marquee + waveform) from the now-orphaned NowPlayingMorphContent. AppState.expandedWindowHeight drops the activeCard == .nowPlaying short-circuit (264pt fixed) so height is purely preset-derived. With the Daily preset (NowPlaying standard 264 + AIUsage compact 52 + header 40) the expanded window resolves to ~356pt. NowPlayingMorphContent is left in place but is no longer referenced anywhere — cleanup can land in a follow-up commit. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
twoColumnView already shows the large artwork plus full lyrics/track info up top. The second HStack — small waveform + Title — Artist text + music.note.list button — was being painted underneath it and read as a mini-widget stuck inside the expanded card (Image #11), well off from the Image #4 reference. Drop the row entirely so the expanded layout is artwork+lyrics, then progressSection, then controlsSection. The full-lyrics overlay button goes with it; LyricsView is already inline in the main row, so the overlay isn't needed for the common path. showLyricsFullView remains unused for now — clean up in a follow-up if no other entry point appears. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…) in twoColumnView Reverts Fix 6 (60e0cb4). Dropping the HStack made the expanded card look thin and lost the lyrics overlay entry point — Image #11 was missing the waveform band and Title—Artist line that Image #4 expects. Put the row back exactly as it appears on main: WaveformView (real audio capture or synthetic fallback), the truncated Title — Artist label, and the music.note.list button that opens the lyricsFullView when lyrics are loaded. showLyricsFullView is wired again because the button is back; no other call sites changed. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Summary
codesign --force --deep --sign -from Create DMGs step. Ad-hoc signing with--deepcreates an invalid signature chain that macOS Sequoia treats as 'damaged', blocking app launch even after quarantine removal. Leaving the app unsigned results in the bypassable 'unidentified developer' dialog instead.lipo -thin arm64from the universal archive — same approach already used for x86_64. Only one full compile (universal) is now needed per release run.-release-suffix) to avoid cross-contamination. Speeds up re-runs after hotfix pushes.Test plan
workflow_dispatchwithversion=v0.3.0-beta-2and verify build completes in ~6 minbrew upgrade --cask perch-betaand verify app opens without prohibition sign🤖 Generated with Claude Code
Summary by CodeRabbit
リリースノート
※ このリリースに含まれる変更はビルドプロセスの内部最適化であり、ユーザーが直接体験される機能的な変更はありません。