mobile-platforms

Triages and fixes .NET runtime failures on iOS, tvOS, MacCatalyst, and Android platforms.

18.2k|5.6k|Updated Sep 24, 2019
One-click install
npx skills add https://github.com/dotnet/runtime --skill mobile-platforms
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mobile-platforms
Source: https://github.com/dotnet/runtime/tree/main/.github/skills/mobile-platforms
Command: npx skills add https://github.com/dotnet/runtime --skill mobile-platforms

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Diagnosing .NET runtime failures on Apple mobile and Android platforms is difficult because failures surface as provisioning errors, emulator boot timeouts, code signing issues, and platform-specific code paths that never appear on desktop. This Skill provides the domain knowledge to classify failures as infrastructure or code, locate the right code paths, and fix them.

Core Features & Use Cases

  • Failure Triage: Classify runtime-extra-platforms CI failures as infrastructure or code, with concrete indicators for each and guidance on reporting to tracking issues.
  • Code Path Mapping: Map failure symptoms (build/packaging, test, NativeAOT, native interop, pipeline YAML) to exact files like AppleAppBuilder, AndroidAppBuilder, and eng/testing targets.
  • Platform Gotchas: Document known traps such as Apple's six OS variants, dsymutil writing errors to stdout, Android's four architectures, and MSBuild evaluation order with NativeAOT.
  • Use Case: A PR fails on iossimulator-arm64 with a code signing error. Use this Skill to identify it as an infrastructure provisioning issue, check the pipeline YAML for the correct DevTeamProvisioning value, and report it on the tracking issue.

Quick Start

Triage the failing iossimulator-arm64 job in the runtime-extra-platforms pipeline and determine whether it is an infrastructure or code failure.

Frequently Asked Questions about mobile-platforms

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I triage a failing iOS or Android job in the runtime-extra-platforms pipeline?

Classify the failure as infrastructure or code first. Infrastructure indicators include emulator boot timeouts, provisioning or code signing errors, and network failures; code failures reference managed code and correlate with recent commits. Then follow the symptom-to-code-path tables to locate the responsible files.

How do I fix .NET code signing and provisioning errors on Apple mobile platforms?

Apple code signing uses DevTeamProvisioning: a dash for simulators and adhoc for MacCatalyst. If a signing error mentions provisioning profiles, check whether the correct value is passed in the pipeline YAML under eng/pipelines/extra-platforms.

Why does NativeAOT compilation fail on mobile library tests in dotnet/runtime?

Directory.Build.targets evaluates before NuGet package targets, so properties like _IsApplePlatform from Microsoft.DotNet.ILCompiler are unavailable in eng/toolAot.targets. Apple mobile library tests must set ILCompilerTargetsPath to Microsoft.DotNet.ILCompiler.SingleEntry.targets with _IlcReferencedAsPackage=false.

Does a fix for one Apple platform variant cover iOS, tvOS, and MacCatalyst?

No. Apple has six OS variants: ios, iossimulator, tvos, tvossimulator, and maccatalyst on x64 and arm64. A fix for one variant almost always needs to cover all six, or the next pipeline run fails on a different job.

Why do mobile tests fail when they pass on desktop?

Tests often assume desktop behavior such as process spawning, filesystem layout, or JIT availability, which mobile platforms restrict. Check whether the test has platform-specific skip conditions using PlatformDetection.