Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ jobs:
with:
fetch-depth: 0 # Required for Calculate Version step (e.g. GitVersion)

- name: Install .NET 8.0
- name: Install .NET 9.0
uses: actions/setup-dotnet@v5
with:
dotnet-version: 8.0
dotnet-version: 9.0

- name: Install Workloads
run: dotnet workload restore
Expand Down Expand Up @@ -73,10 +73,10 @@ jobs:
id-token: write # Required for Trusted Publishing (OIDC token generation)

steps:
- name: Install .NET 8.0
- name: Install .NET 9.0
uses: actions/setup-dotnet@v5
with:
dotnet-version: 8.0
dotnet-version: 9.0

- name: Download NuGet Package Artifact
uses: actions/download-artifact@v4
Expand Down
29 changes: 13 additions & 16 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ This document provides guidance for AI agents (like Claude Code, GitHub Copilot,

**XPlugins.iOS.BEMCheckBox** is a .NET iOS binding library that wraps the native Swift BEMCheckBox framework for use in .NET iOS applications. It enables .NET developers to use highly customizable, animated checkbox controls in their iOS applications.

**Current Version:** 8.0.0
**Target Framework:** net8.0-ios18.0
**Current Version:** 9.0.0
**Target Framework:** net9.0-ios18.0
**Language:** C# 12
**Package:** SaturdayMP.XPlugins.iOS.BEMCheckBox (NuGet)

Expand All @@ -23,7 +23,7 @@ This document provides guidance for AI agents (like Claude Code, GitHub Copilot,
├── ExampleClient/ # Demo iOS application
│ ├── MainViewController.cs # Usage examples
│ └── *.csproj # Example app project
└── global.json # .NET SDK version (8.0.0)
└── global.json # .NET SDK version (9.0.0)
```

## Key Components
Expand Down Expand Up @@ -128,7 +128,7 @@ dotnet pack Source/SaturdayMP.XPlugins.iOS.BEMCheckBox/SaturdayMP.XPlugins.iOS.B
- Version is determined from Git tags and branch names
- Format: Semantic versioning (major.minor.patch)
- Configuration: GitVersion.yml:1
- Current version: 8.0.0
- Current version: 9.0.0

**Version workflow:**
1. Work on feature branches or release/* branches
Expand All @@ -138,7 +138,7 @@ dotnet pack Source/SaturdayMP.XPlugins.iOS.BEMCheckBox/SaturdayMP.XPlugins.iOS.B
5. Tag release: `vX.Y.Z`
6. CI automatically publishes to NuGet

**Important:** Do NOT manually edit version numbers in csproj or nuspec files. They are automatically generated by GitVersion.
**Important:** Do NOT manually edit version numbers in csproj files. They are automatically generated by GitVersion.

### CI/CD Pipeline (.github/workflows/ci.yml:1)

Expand All @@ -149,7 +149,7 @@ dotnet pack Source/SaturdayMP.XPlugins.iOS.BEMCheckBox/SaturdayMP.XPlugins.iOS.B

**Build steps:**
1. Checkout with full Git history (required for GitVersion)
2. Install .NET 8.0
2. Install .NET 9.0
3. Restore workloads
4. Install GitVersion (6.3.0)
5. Determine version
Expand Down Expand Up @@ -280,7 +280,7 @@ To actually run the app, you must use an IDE (Visual Studio for Mac, Visual Stud

**Requirements:**
- macOS with Xcode installed
- .NET 8.0 SDK
- .NET 9.0 SDK
- iOS Simulator available (for running)
- IDE required for running (command-line build only)

Expand All @@ -290,7 +290,7 @@ To actually run the app, you must use an IDE (Visual Studio for Mac, Visual Stud

- **macOS required** for building (iOS SDK dependency)
- **Xcode** must be installed (iOS development tools)
- **.NET 8.0 SDK** required (pinned in global.json:1)
- **.NET 9.0 SDK** required (pinned in global.json:1)
- **iOS 18.0+** minimum target

### Binding Limitations
Expand All @@ -302,13 +302,11 @@ To actually run the app, you must use an IDE (Visual Studio for Mac, Visual Stud

### Package Configuration

**Important:** The nuspec file (SaturdayMP.XPlugins.iOS.BEMCheckBox.nuspec:1) currently references net6.0-ios but the project targets net8.0-ios18.0. When modifying package settings, ensure consistency.

**NuGet package contents:**
- Main DLL only (not ExampleClient)
- LICENSE.txt
- README.md (referenced, not embedded)
- Target framework: Update to net8.0-ios
- Target framework: net9.0-ios18.0

## Testing Strategy

Expand Down Expand Up @@ -364,7 +362,7 @@ To actually run the app, you must use an IDE (Visual Studio for Mac, Visual Stud

### 1. Version Conflicts

**Pitfall:** Manually setting versions in csproj or nuspec
**Pitfall:** Manually setting versions in csproj
**Solution:** Always use GitVersion; versions are auto-generated from Git tags

### 2. Missing Native Reference
Expand Down Expand Up @@ -425,7 +423,6 @@ To actually run the app, you must use an IDE (Visual Studio for Mac, Visual Stud
| ApiDefinitions.cs:1 | C# binding definitions | Adding/modifying bindings |
| StructsAndEnums.cs:1 | Enums and structs | New enum types from framework |
| *.csproj | Project configuration | Changing target framework, references |
| *.nuspec | NuGet package metadata | Package description, dependencies |
| MainViewController.cs:1 | Example usage | Demonstrating new features |
| README.md:1 | User documentation | API changes, version updates |
| GitVersion.yml:1 | Version configuration | Changing version strategy |
Expand All @@ -435,7 +432,7 @@ To actually run the app, you must use an IDE (Visual Studio for Mac, Visual Stud

- **Debug**: Includes ExampleClient, used for testing
- **Release**: Library only, creates NuGet package
- **Target Framework**: net8.0-ios18.0
- **Target Framework**: net9.0-ios18.0
- **Package ID**: SaturdayMP.XPlugins.iOS.BEMCheckBox
- **License**: MIT

Expand All @@ -447,6 +444,6 @@ To actually run the app, you must use an IDE (Visual Studio for Mac, Visual Stud

---

**Last Updated:** 2025-11-19
**For Version:** 8.0.0
**Last Updated:** 2025-11-27
**For Version:** 9.0.0
**Agent Compatibility:** Optimized for Claude Code, GitHub Copilot, and other AI coding assistants
19 changes: 2 additions & 17 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## v8.0.0 (Nov, 14, 2025)
## v8.0.0 (Nov, 27, 2025)


As part of this release we had [8 issues](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/milestone/6?closed=1) closed.
Expand All @@ -22,22 +22,6 @@ __Documentation__
- [__!31__](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/pull/31) Added sponsor shield to README
- [__!37__](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/pull/37) Update documentation for v8.0.0 release

## v3.1.0 (Oct, 17, 2023)


As part of this release we had [3 issues](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/milestone/6?closed=1) closed.



__DevOps__

- [__#30__](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/pull/30) Add SaturdayMP sponsorship button

__Documentation__

- [__#29__](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/pull/29) Update XPlugin version mapping to README
- [__#31__](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/pull/31) Added sponsor shield to README

## v3.0.1 (Oct, 14, 2023)


Expand Down Expand Up @@ -124,3 +108,4 @@ For a full list of issues fixed see the [1.4.2 Milestone](https://github.com/sat


Wraps [BEMCheckBox](https://github.com/Boris-Em/BEMCheckBox) version [1.4.1](https://github.com/Boris-Em/BEMCheckBox/releases/tag/1.4.1).
ckBox/releases/tag/1.4.1).
2 changes: 1 addition & 1 deletion GitVersion.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
next-version: 8.0.0
next-version: 9.0.0
workflow: GitHubFlow/v1
branches:
main:
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,13 @@ Building and running iOS applications from the command line requires an IDE. The
# Version Mapping
Below is the mapping of the BEMCheckBox version used in the XPlugin wrapper version along with the Xamarin/.NET version.

The .NET version lists the minimum .NET and iOS versions required. For example, `net8.0-ios18.0` means the XPlugin will work with .NET 8.0 and iOS 18.0 or higher (e.g. it will work with .NET 8, .NET 9, .NET 10, and iOS 18, iOS 26).
The .NET version lists the minimum .NET and iOS versions required. For example, `net9.0-ios18.0` means the XPlugin will work with .NET 9.0 and iOS 18.0 or higher (e.g. it will work with .NET 9, .NET 10, .NET 11, and iOS 18, iOS 19, iOS 20).

Starting with version 8, the XPlugin version will match the .NET release it is targeting.

| XPlugin | BEMCheckBox | Frameworks/Minimum Version |
|-----------------------------------------------------------------------------------:|----------------------------------------------------------------------:|---------------------------:|
| [9.0.0](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/releases/tag/9.0.0) | [2.2.0](https://github.com/saturdaymp/BEMCheckBox/releases/tag/2.2.0) | .NET/net9.0-ios18.0 |
| [8.0.0](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/releases/tag/8.0.0) | [2.2.0](https://github.com/saturdaymp/BEMCheckBox/releases/tag/2.2.0) | .NET/net8.0-ios18.0 |
| [3.1.0](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/releases/tag/3.1.0) | [2.0.0](https://github.com/saturdaymp/BEMCheckBox/releases/tag/2.0.0) | .NET/net6.0-ios12.0 |
| [3.0.1](https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox/releases/tag/3.0.1) | [2.0.0](https://github.com/saturdaymp/BEMCheckBox/releases/tag/2.0.0) | .NET/net6.0-ios12.0 |
Expand Down
2 changes: 1 addition & 1 deletion Source/ExampleClient/ExampleClient.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-ios18.0</TargetFramework>
<TargetFramework>net9.0-ios18.0</TargetFramework>
<OutputType>Exe</OutputType>
<Nullable>enable</Nullable>
<ImplicitUsings>true</ImplicitUsings>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-ios18.0</TargetFramework>
<TargetFramework>net9.0-ios18.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>true</ImplicitUsings>
<IsBindingProject>true</IsBindingProject>
Expand All @@ -13,7 +13,7 @@
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
<RepositoryUrl>https://github.com/saturdaymp/XPlugins.iOS.BEMCheckBox</RepositoryUrl>
<PackageTags>net8.0 net8.0-ios ios ios-binding bemcheckbox checkbox saturdaymp</PackageTags>
<PackageTags>net9.0 net9.0-ios ios ios-binding bemcheckbox checkbox saturdaymp</PackageTags>
<Company>Saturday Morning Productions Inc.</Company>
<Product>XPlugins.iOS.BEMCheckBox</Product>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion Source/global.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"sdk": {
"version": "8.0.0",
"version": "9.0.0",
"rollForward": "latestFeature"
}
}