-
Notifications
You must be signed in to change notification settings - Fork 423
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 and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update iOS native packaging #3044
Conversation
838118a
to
c062c47
Compare
I know there was a reason I didn't do it this way, but I can't remember what it was. It might be worth moving the |
Another downside of using |
<EmbeddedResource Include="$(MSBuildThisFileDirectory)*.a"> | ||
<WithCulture>false</WithCulture> | ||
</EmbeddedResource> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As-is, this caused the native libraries to be included as osu.Framework.iOS.libXYZ.a
While I was looking over why EmbeddedResource
was used rather than ManifestResourceWithNoCulture
(as in the SQlite project you linked) and that it's because the latter is deprecated, I've noticed that this is actually missing the LogicalName
metadata (which is the cause of the issue above), and also the Type
metadata to correctly replace the deprecated ManifestResourceWithNoCulture
.
See xamarin/xamarin-macios#9525.
Resolved myself at f2706f7.
Fixes native libraries being included as `osu.Framework.iOS.libXYZ.a`, and also corrects the embedded resource type.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Size dropped from 150.3MB to 75.2MB, native libraries don't get duplicated anymore. 👍🏼
Thoroughly tested with clean builds to ensure no leftover libraries in mtouch cache interfere. Can confirm all libraries have been linked properly, along with the specified linker flags and frameworks.
Blocking momentarily while I figure out if building on Release configuration has actually been busted with this PR, or has always been the case. (it takes long to build on Release that it's hard to even ascertain) |
Unblocking as the issue appeared to be unrelated from this PR, will resolve in a separate one. |
Actually templates can't be updated without a framework release with this PR included first. |
Fixes #3030 .
I'm essentially following https://github.com/ericsink/SQLitePCL.raw/tree/master/src/SQLitePCLRaw.lib.e_sqlite3.ios , since sqlite should be the most used package with native asset in .NET world.
Please do a manual test because I cannot, neither CI does.
The change packs native libraries with assembly instead of nupkg. Test results on project reference should be safely applicable on package reference at game side.