Aura3D.Angle.iOS 0.1.0

dotnet add package Aura3D.Angle.iOS --version 0.1.0
                    
NuGet\Install-Package Aura3D.Angle.iOS -Version 0.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Aura3D.Angle.iOS" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Aura3D.Angle.iOS" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Aura3D.Angle.iOS" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Aura3D.Angle.iOS --version 0.1.0
                    
#r "nuget: Aura3D.Angle.iOS, 0.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Aura3D.Angle.iOS@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Aura3D.Angle.iOS&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Aura3D.Angle.iOS&version=0.1.0
                    
Install as a Cake Tool

Aura3D.Angle.iOS

Aura3D 的 iOS 渲染路径自带 ANGLE(Metal 后端)上下文, 但 ANGLE 的原生库必须由应用链接进主可执行文件:Aura3D.Avalonia 里的桥接代码用 DllImport("__Internal") 解析符号(为了避开 Apple 自带的 OpenGLES 符号混用), 所以库不能只放在类包里。这个包就是替应用做这件事:装上之后 targets 自动注入 NativeReference,不需要写任何配置。

用法

不需要单独装。Aura3D.Avalonia 的 iOS 目标以精确区间依赖本包,包里的 buildTransitive targets 会穿透到应用工程生效,所以应用侧一行 ANGLE 配置都不用写:

dotnet add package Aura3D.Avalonia

想显式控制切片版本时再直接引用本包也可以:

dotnet add package Aura3D.Angle.iOS

只作用于 iOS 目标框架($(TargetFramework) 含 -ios),桌面/Android 工程装了也不会有副作用。 装完之后 iOS 上仍要确认宿主是默认的 Metal 合成器(不要强制 iOSRenderingMode.OpenGl), 细节见仓库文档《平台与渲染后端》。

包里有什么

native/iossimulator-arm64/libEGL.framework      模拟器切片
native/iossimulator-arm64/libGLESv2.framework
native/ios-arm64/libEGL.framework               真机切片
native/ios-arm64/libGLESv2.framework
build/Aura3D.Angle.iOS.targets                  按 $(RuntimeIdentifier) 选切片并注入 NativeReference
buildTransitive/Aura3D.Angle.iOS.targets        同上(传递消费时命中)
LICENSE.angle.txt                               ANGLE 的 BSD-3-Clause 原文

两份切片都随包入库(约 24 MB),所以发布不需要 depot_tools 也不需要 Xcode。 切片缺失时构建会直接报错,不会静默出一个"能编译、运行时不出图"的包。

发布

本包没有独立的发布通道,跟 pack.yml 的发版列车一起发:同一次运行里先 pack 到 local-feed/ (供仓库自身的 restore 使用,NuGet.config 把这个目录声明成了包源),再 pack 进 packages/ 与其他库一起推到 nuget.org(secret NUGET_API_KEY)。因为一切出自同一个 commit, Aura3D.Avalonia 的 nuspec 里钉的那个版本必定是本次刚发布的那一个。

切片热修 = 改本目录 Aura3D.Angle.iOS.csproj 的 <Version> + 同一次提交里改 Directory.Packages.props 的区间 + 跑一次 pack.yml。之所以要成对改:Aura3D.Avalonia 钉的是精确区间 [<版本>],切片与 Aura3D.Avalonia 里的 DllImport 签名是 ABI 配对, 不能让消费方被动升到一个没配套测过的切片上。也就是说换切片就意味着重发 Aura3D.Avalonia。

native/ 下没有任何切片时 dotnet pack 会直接失败(AngleNativeCheck),不会发出空壳包。

重新构建切片

./build-angle-ios.sh            # 模拟器切片
./build-angle-ios.sh --device   # 追加真机切片
dotnet pack -c Release -o local-feed

脚本会把 framework 放进 native/。当前版本对应 ANGLE 58f8882372e8a4e83da821ac5d16f0323c3fa1af,gn 参数 angle_enable_metal=true、is_debug=false、enable_rust=false(standalone checkout 即可, 不需要 Chromium 全量 checkout),真机切片额外需要 ios_enable_code_signing=false。 切片按 ANGLE 默认的 ios_deployment_target 构建,minos 为 18.0。

验证状态

  • 模拟器 arm64:已验证。Example.iOS 去掉本地路径引用、只靠这个包出包, otool -L 可见 @rpath/libEGL.framework/libEGL,Base Geometries 与 PBR RenderPipeline 两页正常出图。
  • 真机 arm64:未验证运行时。没有可用设备;切片构建通过、按 ios-arm64 RID 注入正确, 但真机上的实际渲染没有跑过。

许可

包内二进制来自 ANGLE,按 ANGLE 自己的 BSD-3-Clause 分发(原文见 LICENSE.angle.txt)。

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

  • .NETStandard 2.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Aura3D.Angle.iOS:

Package Downloads
Aura3D.Avalonia

Three Dimensional Control for Avalonia

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0 37 9/24/2026

ANGLE 58f8882372e8a4e83da821ac5d16f0323c3fa1af, gn: angle_enable_metal=true, is_debug=false, enable_rust=false。
模拟器切片已验证出图;真机切片由 scripts/build-angle-ios.sh 产出,未在设备上验证。