[msbuild] Don't add frameworks with static libraries to Hot Restart apps. by rolfbjarne · Pull Request #19300 · dotnet/macios (original) (raw)
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation21 Commits3 Checks0 Files changed
Conversation
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
[ Show hidden characters]({{ revealButtonHref }})
The main problem is that an app with unsigned executable code will fail any signing
verification, and the app won't install on device.
This is implemented by doing two changes:
- Augment the FilterStaticFrameworks task to only filter out frameworks with
static libraries (and thus keeping everything that's not a static framework, even
if it's not even a framework). - Execute the FilterStaticFrameworks task to filter out static frameworks from
the entire list of files to bundle in the hot restart app bundle.
…pps.
The main problem is that an app with unsigned executable code will fail any signing verification, and the app won't install on device.
This is implemented by doing two changes:
Augment the FilterStaticFrameworks task to only filter out frameworks with static libraries (and thus keeping everything that's not a static framework, even if it's not even a framework).
Execute the FilterStaticFrameworks task to filter out static frameworks from the entire list of files to bundle in the hot restart app bundle.
This comment has been minimized.
@@ -32,6 +34,11 @@ public override bool Execute () |
---|
continue; |
} |
if (OnlyFilterFrameworks && !Path.GetDirectoryName (frameworkExecutablePath).EndsWith (".framework", StringComparison.OrdinalIgnoreCase)) { |
Log.LogMessage (MessageImportance.Low, $"Skipped processing {item.ItemSpec} because it's not a framework"); |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if this should be logged as a warning instead. I know it could be annoying, but if we are choosing to ignore/skip static libraries, it means those are not supported in the current context.
And a warning could be a hint for crashes that may happen because those were not included in the app bundle?
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We already log a warning for static libraries we skip, this is logging all the other files this task just skips (i.e. don't filter out, so they'll end up in the app bundle).
emaf approved these changes Oct 23, 2023
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
💻 [PR Build] Tests on macOS M1 - Mac Big Sur (11.5) passed 💻
✅ All tests on macOS M1 - Mac Big Sur (11.5) passed.
Pipeline on Agent
Hash: [PR build]
💻 [PR Build] Tests on macOS M1 - Mac Ventura (13.0) passed 💻
✅ All tests on macOS M1 - Mac Ventura (13.0) passed.
Pipeline on Agent
Hash: [PR build]
✅ API diff for current PR / commit
Legacy Xamarin (No breaking changes)
iOS(no change detected)tvOS(no change detected)watchOS(no change detected)macOS(no change detected) NET (empty diffs)iOS: (empty diff detected)tvOS: (empty diff detected)MacCatalyst: (empty diff detected)macOS: (empty diff detected)
✅ API diff vs stable
Legacy Xamarin (No breaking changes)
- iOS: vsdrops gist (No breaking changes)
- tvOS: vsdrops gist (No breaking changes)
- watchOS: vsdrops gist (No breaking changes)
- macOS: vsdrops gist (No breaking changes) .NET (No breaking changes)
- iOS: vsdrops gist (No breaking changes)
- tvOS: vsdrops gist (No breaking changes)
- MacCatalyst: vsdrops gist (No breaking changes)
- macOS: vsdrops gist (No breaking changes)
- Microsoft.iOS vs Microsoft.MacCatalyst: vsdrops gist Legacy Xamarin (stable) vs .NET
- iOS: vsdrops gist
- tvOS: vsdrops gist
- macOS: vsdrops gist
ℹ️ Generator diff
Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)
Pipeline on Agent
Hash: c70b9786025bafba2c238be71913daf2cc68b46a [PR build]
/sudo backport release/8.0.1xx
rolfbjarne deleted the hotrestart-filter-static-frameworks branch
Backport Job to branch release/8.0.1xx Created! The magic is happening here
dalexsoto pushed a commit that referenced this pull request
…s to Hot Restart apps. (#19336)
The main problem is that an app with unsigned executable code will fail any signing verification, and the app won't install on device.
This is implemented by doing two changes:
Augment the FilterStaticFrameworks task to only filter out frameworks with static libraries (and thus keeping everything that's not a static framework, even if it's not even a framework).
Execute the FilterStaticFrameworks task to filter out static frameworks from the entire list of files to bundle in the hot restart app bundle.
Backport of #19300
Co-authored-by: Rolf Bjarne Kvinge rolf@xamarin.com