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
1 change: 1 addition & 0 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ Nullability updates are generally compile-time metadata changes, but they can su

## Quick links

- Documentation index: [docs/README.md](docs/README.md)
- Build locally: [docs/BUILDING.md](docs/BUILDING.md)
- Publish to GitHub Packages: [docs/PUBLISHING_GITHUB_PACKAGES.md](docs/PUBLISHING_GITHUB_PACKAGES.md)
- Contributing guidelines: [CONTRIBUTING.md](CONTRIBUTING.md)
Expand Down
59 changes: 26 additions & 33 deletions docs/BUILDING.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,47 @@
# Building locally (macOS)
# Building Locally

This repo builds .NET iOS/macOS bindings and NuGet packages using Cake.
This repository builds .NET iOS and Mac Catalyst bindings plus NuGet packages using Cake.

## Prerequisites

- .NET SDK (see `global.json`)
- Xcode (matching the installed iOS workload requirements)
- CocoaPods (`pod`)
- .NET SDK from `global.json`.
- Xcode compatible with the installed .NET Apple workloads.
- CocoaPods (`pod`).

Restore the local Cake tool from the checked-in .NET tool manifest:
Restore the checked-in Cake tool manifest before building:

```sh
dotnet tool restore
```

## Configure GitHub Packages feed (for fork contributors)
## GitHub Packages Feed for Forks

If you are working on a fork of this repository and want to resolve NuGet packages published from your fork, run:
If you are working from a fork and need to restore packages published from that fork, configure a GitHub Packages source:

```sh
# Using GitHub CLI (recommended)
./scripts/configure-github-feed.sh --gh
```

You can also use a local personal access token with `read:packages` scope:

# Or using a personal access token
```sh
export GITHUB_PACKAGES_PAT="your_github_pat_here"
./scripts/configure-github-feed.sh
```

This script:
- Auto-detects your fork owner from the git remote URL
- Configures a GitHub Packages feed (`github-<YourUsername>`)
- Allows `dotnet restore` to resolve packages published from your fork
Do not commit tokens or generated local NuGet credentials.

**Note**: Your GitHub Personal Access Token must have the `read:packages` scope. See [GitHub docs](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic) for token creation.
The script detects the fork owner from the git remote, adds a source named like `github-<YourUsername>`, and allows `dotnet restore` to resolve fork-published packages.

## Build + pack a component
## Build and Pack One Component

Build and produce `.nupkg` files into `./output`:
Build and produce `.nupkg` files under `./output`:

```sh
dotnet tool run dotnet-cake -- --target=nuget --names=Google.SignIn
```

## Clean-up

To clean generated folders:
## Clean Generated Output

```sh
dotnet tool run dotnet-cake -- --target=clean
Expand All @@ -54,34 +51,30 @@ dotnet tool run dotnet-cake -- --target=clean

### MSB4057: The target "source/..." does not exist

This error can occur when using MSBuild solution-level targets with certain .NET SDK versions. The `build.cake` script avoids this by building each `.csproj` directly in dependency order, which is more explicit and reliable.
This can happen when using MSBuild solution-level targets with some .NET SDK versions. The Cake script builds `.csproj` files directly in dependency order to avoid that failure mode.

### NU1101: Unable to find package AdamE.Google.iOS.AppCheckCore

Some packages (like `SignIn`) depend on `AppCheckCore` which is built from this repo. The Cake script handles this automatically by building dependencies first. If you still encounter this:
Some packages depend on other packages built from this repository. The Cake script handles dependency-first packing. If restore still fails, run the component build through Cake instead of building the project directly:

1. Ensure you're using the latest `build.cake` (it should iterate `ARTIFACTS_TO_BUILD`)
2. Run the full build: `dotnet tool run dotnet-cake -- --target=nuget --names=Google.SignIn`
```sh
dotnet tool run dotnet-cake -- --target=nuget --names=Google.SignIn
```

### Code signing errors during xcframework build

The Cake scripts disable code signing by default (`CODE_SIGNING_ALLOWED=NO`) for CI compatibility. If you need signed frameworks, override the build settings in `common.cake`.
The Cake scripts disable code signing by default (`CODE_SIGNING_ALLOWED=NO`) for CI compatibility. If you need signed frameworks, override the build settings locally instead of committing signing material.

### NuGet feed issues

If you see errors like:
```
NU1101: Unable to find package AdamE.Firebase.iOS.AppCheck [...]
```
If restore cannot find packages from a fork, verify the configured sources:

This may occur if your GitHub Packages feed is not configured. See "[Configure GitHub Packages feed](#configure-github-packages-feed-for-fork-contributors)" above.

Verify your feed configuration:
```sh
dotnet nuget list source
```

Clear the NuGet cache if needed:
Then clear local NuGet caches if needed:

```sh
dotnet nuget locals all --clear
dotnet restore
Expand Down
24 changes: 11 additions & 13 deletions docs/Firebase/Analytics/Details.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
Firebase Analytics is a free app measurement solution that provides insight on app usage and user engagement.
# Firebase Analytics

At the heart of Firebase is Firebase Analytics, a free and unlimited analytics solution. Analytics integrates across Firebase features and provides you with unlimited reporting for up to 500 distinct events that you can define using the Firebase SDK. Analytics reports help you understand clearly how your users behave, which enables you to make informed decisions regarding app marketing and performance optimizations.
This path is retained for existing links, but this repository does not maintain a copied Firebase Analytics walkthrough.

## Key capabilities
These packages are thin .NET bindings over the native Firebase Apple SDKs. Use the official native documentation as the source of truth for setup, product behavior, console workflows, quotas, policy requirements, and examples.

| | |
|-:|-|
| **Unlimited Reporting:** | Firebase Analytics provides unlimited reporting on up to 500 distinct events. |
| **Audience Segmentation:** | Custom audiences can be defined in the Firebase console based on device data, custom events, or user properties. These audiences can be used with other Firebase features when targeting new features or notifications messages. |
## Native Documentation

## How does it work?
- Firebase Apple setup: https://firebase.google.com/docs/ios/setup
- Firebase Analytics documentation: https://firebase.google.com/docs/analytics/get-started

Firebase Analytics helps you understand how people use your iOS app. The SDK automatically captures a number of events and user properties and also allows you to define your own custom events to measure the things that uniquely matter to your business. Once the data is captured, it's available in a dashboard through the Firebase console. This dashboard provides detailed insights about your data — from summary data such as active users and demographics, to more detailed data such as identifying your most purchased items.
## Binding Package

Analytics also integrates with a number of other Firebase features. For example, it automatically logs events that correspond to notification messages sent via the Notifications composer and provides reporting on the impact of each campaign.
- Package README: [../NuGet/Analytics.md](../NuGet/Analytics.md)
- Package ID: `AdamE.Firebase.iOS.Analytics`
- Managed namespace: `Firebase.Analytics`

Firebase Analytics helps you understand how your users behave, so you can make informed decisions about how to market your app. See the performance of your campaigns across organic and paid channels to understand which methods are most effective at driving high-value users. If you need to perform custom analysis or join your data with other sources you can link your Analytics data to BigQuery, which allows for more complex analysis like querying large data sets and joining multiple data sources.

<sub>_Portions of this page are modifications based on work created and [shared by Google](https://developers.google.com/readme/policies/) and used according to terms described in the [Creative Commons 3.0 Attribution License](http://creativecommons.org/licenses/by/3.0/). Click [here](https://firebase.google.com/docs/analytics/) to see original Firebase documentation._</sub>
Document only binding-specific caveats in this repository. Product usage guidance belongs in the official native docs.
Loading
Loading