dotnet / dotnet/xcsync

XIBs from the class library are not included in the generated XCode project

Open
#226 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
25
Forks
10
Avg merge
12h 50m
Merged PRs (30d)
10

Description

### Is there an existing issue for this?

- [x] I have searched the existing issues

### Apple platform

macOS

### Framework version

net9.0-*

### Describe the bug

I have some shared UI components across the several executable projects. So, I moved such an UI (XIBs) and corresponding C# code in the class library.
This works fine - I can reuse both the UI components and the C# code from the class library.
But I can't edit UI there because xcsync does not include the XIBs from the class library in the generated XCode project (but adding the C#-classes with a `RegisterAttribute`)

### Expected Behavior

The entire dependency tree, including class library, shared project and even executables (it looks weird, but you actually can use the executable in the `ProjectReference` and reuse at least a C#-code from there) is scanned for the specific entities (classes with the `RegisterAttribute`, UI definitions, etc) and such entities are included in the generated XCode project.

### Steps To Reproduce

* download and unpack a [Test.zip](https://github.com/user-attachments/files/20595429/Test.zip)
* navigate in the `UiFromClassLib` folder
* `xcsync generate`
* check the generated XCode project
* `MyItem.h & MyItem.m`, which represent the `MyItem` class from the class library are included in the XCode project - it's ok
* `MyItem.xib` from the same class library is missing

### Exceptions (if any)

no exceptions

### .NET Version info

```
.NET SDK:
Version: 9.0.203
Commit: dc7acfa194
Workload version: 9.0.202
MSBuild version: 17.13.20+a4ef1e90f

Runtime Environment:
OS Name: Mac OS X
OS Version: 14.7
OS Platform: Darwin
RID: osx-arm64
Base Path: /usr/local/share/dotnet/sdk/9.0.203/

.NET workloads installed:
[macos]
Installation Source: SDK 9.0.200
Manifest Version: 15.2.9180/9.0.100
Manifest Path: /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.macos/15.2.9180/WorkloadManifest.json
Install Type: FileBased

[ios]
Installation Source: SDK 9.0.200
Manifest Version: 18.2.9180/9.0.100
Manifest Path: /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.ios/18.2.9180/WorkloadManifest.json
Install Type: FileBased

[maccatalyst]
Installation Source: SDK 9.0.200
Manifest Version: 18.2.9180/9.0.100
Manifest Path: /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maccatalyst/18.2.9180/WorkloadManifest.json
Install Type: FileBased

[tvos]
Installation Source: SDK 9.0.200
Manifest Version: 18.2.9180/9.0.100
Manifest Path: /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.tvos/18.2.9180/WorkloadManifest.json
Install Type: FileBased

[android]
Installation Source: SDK 9.0.200
Manifest Version: 35.0.50/9.0.100
Manifest Path: /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.android/35.0.50/WorkloadManifest.json
Install Type: FileBased

Configured to use workload sets when installing new manifests.

Host:
Version: 9.0.4
Architecture: arm64
Commit: f57e6dc747

.NET SDKs installed:
6.0.425 [/usr/local/share/dotnet/sdk]
7.0.410 [/usr/local/share/dotnet/sdk]
8.0.401 [/usr/local/share/dotnet/sdk]
9.0.203 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.33 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.20 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.8 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.33 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.20 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.8 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
None

Environment variables:
Not set

global.json file:
Not found

Learn more:
https://aka.ms/dotnet/info

Download .NET:
https://aka.ms/dotnet/download
```

### Anything else?

```
> xcsync --version
xcSync v0.1.0.0, (c) Microsoft Corporation. All rights reserved.

0.1.0-preview.24509.2+275197d5c1f6f320b077346fc3b46d97c01fb287
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.