You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On Mac Catalyst the About tab renders nothing where "More from Dansk Rumskrot" and "Friends of the App" should be. Both views compile to EmptyView().
AuthAppForTesla/View/About/AboutViewMoreApps.swift and AuthAppForTesla/View/About/AboutViewFooter.swift are both shaped like this:
varbody:someView{#if !targetEnvironment(macCatalyst)VStack(spacing:AppSpacing.sm){Text("More from Dansk Rumskrot")…}#elseEmptyView()#endif}
AboutView still composes them in order — AboutViewHeader, AboutViewShortcuts, AboutViewMoreApps, AboutViewFooter, TipJarView — so on Mac the tab silently collapses to header, shortcuts, and tip jar. Every link to ManaScope, PairPanic, Rumskrot Remote, Rumskrot Terminal, TeSlate, Teslascope, the Tesla iOS Shortcuts repo, and Autarkie Manager is absent from the Mac build.
Why it is gated off, and why that is now fixable
Both sections render AboutViewFriend, whose tap handler calls presentStoreProduct(appID:) — a raw SKStoreProductViewController presentation. That is precisely the code crashing in #32.
So the #if gates are not a Mac design decision. They are a workaround for a StoreKit presentation problem, applied by disabling the feature on the platform where it was noticed.
Fixing #32 and fixing this are the same change. If #32 is resolved by taking the openURL route to apps.apple.com — one of the two options proposed there, and the one commit 47096fc originally chose — then AboutViewFriend no longer touches SKStoreProductViewController at all, the reason for the gates disappears, and both #if !targetEnvironment(macCatalyst) / #else EmptyView() blocks can simply be deleted. The Mac build gets its cross-promotion back as a side effect of fixing the crash.
openURL is also the better Mac behaviour on its own merits: on macOS it hands off to the Mac App Store app, which is what a Mac user expects from an app link.
What
On Mac Catalyst the About tab renders nothing where "More from Dansk Rumskrot" and "Friends of the App" should be. Both views compile to
EmptyView().AuthAppForTesla/View/About/AboutViewMoreApps.swiftandAuthAppForTesla/View/About/AboutViewFooter.swiftare both shaped like this:AboutViewstill composes them in order —AboutViewHeader,AboutViewShortcuts,AboutViewMoreApps,AboutViewFooter,TipJarView— so on Mac the tab silently collapses to header, shortcuts, and tip jar. Every link to ManaScope, PairPanic, Rumskrot Remote, Rumskrot Terminal, TeSlate, Teslascope, the Tesla iOS Shortcuts repo, and Autarkie Manager is absent from the Mac build.Why it is gated off, and why that is now fixable
Both sections render
AboutViewFriend, whose tap handler callspresentStoreProduct(appID:)— a rawSKStoreProductViewControllerpresentation. That is precisely the code crashing in #32.So the
#ifgates are not a Mac design decision. They are a workaround for a StoreKit presentation problem, applied by disabling the feature on the platform where it was noticed.Fixing #32 and fixing this are the same change. If #32 is resolved by taking the
openURLroute toapps.apple.com— one of the two options proposed there, and the one commit47096fcoriginally chose — thenAboutViewFriendno longer touchesSKStoreProductViewControllerat all, the reason for the gates disappears, and both#if !targetEnvironment(macCatalyst)/#else EmptyView()blocks can simply be deleted. The Mac build gets its cross-promotion back as a side effect of fixing the crash.openURLis also the better Mac behaviour on its own merits: on macOS it hands off to the Mac App Store app, which is what a Mac user expects from an app link.Proposed change
presentStoreProduct(appID:)withopenURLto theapps.apple.comproduct URL.#if !targetEnvironment(macCatalyst)/#else EmptyView()wrappers in bothAboutViewMoreApps.swiftandAboutViewFooter.swift.LazyVGridcolumn count and the fixed.frame(height: 140)on the friend cells at Mac window widths — those were tuned for a phone-width column and will want revisiting, especially alongside Mac: adopt the Mac interface idiom instead of "Scaled to Match iPad" #36.Sequence this after #32.
Posted by agent — anything without this footnote was written by Kim.