Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Add support for bundling original assets in library projects #19028

Closed
Assignees
rolfbjarne
Labels
featureA feature to be implementedmsbuildIssues affecting our msbuild tasks/targets
Milestone
@rolfbjarne

Description

@rolfbjarne

Library projects can have various types of bundle resources (storyboards, xibs, property lists, png images, CoreML models, texture atlases, etc - the_BundleResourceWithLogicalName item group), and they're bundled into the compiled library as embedded resources (using a prefix, like__monotouch_content_) - in thePackLibraryResources task.

If any processing can be done (such as compiling storyboards or xibs, or optimizing property lists/png images, etc), it's donebefore embedding, but this complicates library builds a lot, because they:

  • Need to execute on a Mac, because compiling xibs/storyboards can only be done on a Mac.
  • Need Apple's toolchain around.
  • Makes it impossible to do any decision-making based on the original resources when building the app.

The last part is important because of conflicting resources (#5755) - if the executable app ends up with multiple xcassets with the same name from multiple library projects (or a library project and the executable project), it's impossible to merge them post-compilation (while it could be done if we had access to all the original resources when compiling the executable project).

So the suggestion would be to add support for bundling original assets in libraries, by adding a new MSBuild propertyBundleOriginalLibraryAssets, and make the default valuetrue.

Unfortunately there may have been a reason it was done this way originally, but that potential reason has been lost in history. This means that we must support opting out of this behavior for a while.

Advantages:

  • Library projects can be built on any platform, there's no need for Apple's toolchain (no remoting needed from Windows for instance).
  • Library projects will build faster.
  • We can include library assets in any decision making when building the executable project (such as merging assets from multiple sources).

Metadata

Metadata

Assignees

Labels

featureA feature to be implementedmsbuildIssues affecting our msbuild tasks/targets

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions


    [8]ページ先頭

    ©2009-2025 Movatter.jp