Skip to content

Commit 11bf074

Browse files
Remove repository sample apps (#182)
1 parent 86df19a commit 11bf074

521 files changed

Lines changed: 30 additions & 17966 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Agent Instructions (public OSS)
22

33
## Non-negotiables
4-
- Documentation and samples must be generic (not app-specific).
4+
- Documentation must be generic (not app-specific).
55
- Do not reference private business context.
6-
- Do not commit secrets; samples must rely on local config templates.
6+
- Do not commit secrets; rely on local config templates.
77

88
## Working agreements
99
- Keep changes reviewable and releaseable (small PR-sized diffs).

CONTRIBUTING.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,19 @@ This repo primarily contains:
1818

1919
* **Bindings** (C# API surface + native frameworks packaged into NuGet)
2020
* **Build automation** (Cake scripts that fetch/build Pods and pack NuGets)
21-
* **Samples** (small apps to validate the bindings work end-to-end)
2221
* **Docs** (how to build, validate, publish)
2322

2423
Most contributions fall into one of these buckets:
2524

26-
* **Docs-only**: clarify setup, sample configuration, gotchas.
27-
* **Dependency bumps**: update a Pod version (and any required transitive Pods), then ensure the binding still packs and the sample still builds.
25+
* **Docs-only**: clarify setup, configuration, gotchas.
26+
* **Dependency bumps**: update a Pod version (and any required transitive Pods), then ensure the binding still packs.
2827
* **Binding fixes**: API surface adjustments, linker/NativeReference fixes, or changes needed after a native SDK update.
2928

3029
## Repository orientation (quick map)
3130

32-
* `components.cake`: component definitions (Pod specs, sample names, dependency graph).
31+
* `components.cake`: component definitions (Pod specs, dependency graph).
3332
* `externals/`: generated/native artifacts produced from Pods (created by the build).
3433
* `source/`: binding projects (what becomes NuGet packages).
35-
* `samples/`: sample apps that reference the bindings.
3634
* `.github/workflows/`: CI validation and publishing.
3735

3836
## Common pitfalls with iOS bindings
@@ -73,9 +71,8 @@ At minimum, validate the component(s) you touched:
7371

7472
* `dotnet tool restore`
7573
* `dotnet tool run dotnet-cake -- --target=nuget --names=<ComponentName>`
76-
* `dotnet tool run dotnet-cake -- --target=samples --names=<ComponentName>`
7774

7875
Also:
7976

80-
* Keep samples and docs **generic** (no app-specific context).
77+
* Keep docs **generic** (no app-specific context).
8178
* Do not commit secrets or service configuration files; prefer `.template` files and document the required local steps.

Readme.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This repository is a community-supported continuation of the Xamarin Google/Fire
88

99
The goal is to give .NET for iOS and Mac Catalyst developers a common binding baseline for Google, Firebase, and ML Kit native SDKs. That helps downstream libraries share the same native dependencies instead of each shipping incompatible copies of overlapping xcframeworks.
1010

11-
This repo contains the binding projects, Cake build automation, documentation, and sample apps used to build and validate those packages.
11+
This repo contains the binding projects, Cake build automation, and documentation used to build and validate those packages.
1212

1313
## Quick links
1414

@@ -166,7 +166,7 @@ If package extraction appears to be failing on Windows, see [this issue comment]
166166

167167
## Contributing and support
168168

169-
Pull requests are welcome, especially for stale bindings, dependency updates, docs improvements, and sample fixes. For anything non-trivial, please open an issue or discussion first so we can align on the approach before you spend time on build tooling or binding surface changes.
169+
Pull requests are welcome, especially for stale bindings, dependency updates, docs improvements, and build fixes. For anything non-trivial, please open an issue or discussion first so we can align on the approach before you spend time on build tooling or binding surface changes.
170170

171171
For contributor workflow details, see [CONTRIBUTING.md](CONTRIBUTING.md) and [docs/BUILDING.md](docs/BUILDING.md).
172172

Xamarin.Google.sln

Lines changed: 0 additions & 296 deletions
Large diffs are not rendered by default.

build.cake

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ var EXTERNALS_PATH = new DirectoryPath ("./externals");
2121
var ARTIFACTS_TO_BUILD = new List<Artifact> ();
2222

2323
var SOURCES_TARGETS = new List<string> ();
24-
var SAMPLES_TARGETS = new List<string> ();
2524

2625
FilePath GetCakeToolPath ()
2726
{
@@ -99,7 +98,6 @@ Task("build")
9998
.Does(() =>
10099
{
101100
BuildCake ("nuget");
102-
BuildCake ("samples");
103101
});
104102

105103
// Prepares the artifacts to be built.
@@ -112,15 +110,12 @@ Task("prepare-artifacts")
112110
SetArtifactsDependencies ();
113111
SetArtifactsPodSpecs ();
114112
SetArtifactsExtraPodfileLines ();
115-
SetArtifactsSamples ();
116113

117114
var selectedArtifactsForBuild = new List<Artifact> ();
118-
var orderedArtifactsForSamples = new List<Artifact> ();
119115

120116
if (string.IsNullOrWhiteSpace (NAMES)) {
121117
var artifacts = ARTIFACTS.Values.Where (a => !a.Ignore);
122118
selectedArtifactsForBuild.AddRange (artifacts);
123-
orderedArtifactsForSamples.AddRange (artifacts);
124119
} else {
125120
var names = NAMES.Split (',');
126121
foreach (var name in names) {
@@ -131,11 +126,9 @@ Task("prepare-artifacts")
131126
continue;
132127

133128
selectedArtifactsForBuild.Add (artifact);
134-
orderedArtifactsForSamples.Add (artifact);
135129
}
136130

137131
selectedArtifactsForBuild = selectedArtifactsForBuild.Distinct ().ToList ();
138-
orderedArtifactsForSamples = orderedArtifactsForSamples.Distinct ().ToList ();
139132
}
140133

141134
var orderedArtifactsForBuild = OrderArtifactsByDependencies (selectedArtifactsForBuild);
@@ -147,11 +140,6 @@ Task("prepare-artifacts")
147140
SOURCES_TARGETS.Add($@"{artifact.ComponentGroup}{BACKSLASH}{artifact.CsprojName.Replace ('.', '_')}");
148141
Information (artifact.Id);
149142
}
150-
151-
foreach (var artifact in orderedArtifactsForSamples)
152-
if (artifact.Samples != null)
153-
foreach (var sample in artifact.Samples)
154-
SAMPLES_TARGETS.Add($@"{artifact.ComponentGroup}{BACKSLASH}{sample.Replace ('.', '_')}");
155143
});
156144

157145
Task ("externals")
@@ -215,36 +203,6 @@ Task ("libs")
215203
}
216204
});
217205

218-
Task ("samples")
219-
.IsDependentOn("libs")
220-
.Does(() =>
221-
{
222-
var msBuildSettings = new DotNetMSBuildSettings ();
223-
msBuildSettings.Properties ["Platform"] = new [] { "iPhoneSimulator" };
224-
msBuildSettings.Properties ["RuntimeIdentifier"] = new [] { GetDefaultiOSSimulatorRuntimeIdentifier () };
225-
msBuildSettings.Properties ["EnableCodeSigning"] = new [] { "false" };
226-
227-
var dotNetBuildSettings = new DotNetBuildSettings {
228-
Configuration = "Release",
229-
Verbosity = DotNetVerbosity.Diagnostic,
230-
NoRestore = false,
231-
MSBuildSettings = msBuildSettings
232-
};
233-
234-
// Build each sample csproj directly
235-
foreach (var artifact in ARTIFACTS_TO_BUILD) {
236-
if (artifact.Samples == null)
237-
continue;
238-
foreach (var sample in artifact.Samples) {
239-
var samplePath = $"./samples/{artifact.ComponentGroup}/{sample}/{sample}.csproj";
240-
if (FileExists(samplePath)) {
241-
Information ($"Building sample: {samplePath}");
242-
DotNetBuild(samplePath, dotNetBuildSettings);
243-
}
244-
}
245-
}
246-
});
247-
248206
Task ("nuget")
249207
.IsDependentOn("externals")
250208
.IsDependentOn("ci-setup")
@@ -301,8 +259,7 @@ Task ("clean")
301259
Task ("ci")
302260
.IsDependentOn("externals")
303261
.IsDependentOn("libs")
304-
.IsDependentOn("nuget")
305-
.IsDependentOn("samples");
262+
.IsDependentOn("nuget");
306263

307264
Teardown (context =>
308265
{

components.cake

Lines changed: 4 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -102,18 +102,18 @@ void SetArtifactsDependencies ()
102102
{
103103
FIREBASE_AB_TESTING_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT };
104104
FIREBASE_ANALYTICS_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTALLATIONS_ARTIFACT, GOOGLE_GOOGLE_APP_MEASUREMENT_ARTIFACT };
105-
FIREBASE_AUTH_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, GOOGLE_GTM_SESSION_FETCHER_ARTIFACT /* Needed for sample GOOGLE_SIGN_IN_ARTIFACT */ };
106-
FIREBASE_CLOUD_FIRESTORE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, /* Needed for sample */ FIREBASE_AUTH_ARTIFACT };
105+
FIREBASE_AUTH_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, GOOGLE_GTM_SESSION_FETCHER_ARTIFACT };
106+
FIREBASE_CLOUD_FIRESTORE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_AUTH_ARTIFACT };
107107
FIREBASE_CLOUD_FUNCTIONS_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, GOOGLE_GTM_SESSION_FETCHER_ARTIFACT };
108108
FIREBASE_CLOUD_MESSAGING_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTALLATIONS_ARTIFACT };
109109
FIREBASE_CORE_ARTIFACT.Dependencies = new [] { GOOGLE_GOOGLE_DATA_TRANSPORT_ARTIFACT, GOOGLE_GOOGLE_UTILITIES_ARTIFACT, GOOGLE_NANOPB_ARTIFACT, GOOGLE_PROMISES_OBJC_ARTIFACT};
110110
FIREBASE_CRASHLYTICS_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTALLATIONS_ARTIFACT };
111-
FIREBASE_DATABASE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, /* Needed for sample FIREBASE_AUTH_ARTIFACT */ };
111+
FIREBASE_DATABASE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT };
112112
FIREBASE_IN_APP_MESSAGING_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTALLATIONS_ARTIFACT, FIREBASE_AB_TESTING_ARTIFACT };
113113
FIREBASE_INSTALLATIONS_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT };
114114
FIREBASE_PERFORMANCE_MONITORING_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTALLATIONS_ARTIFACT, FIREBASE_AB_TESTING_ARTIFACT, FIREBASE_REMOTE_CONFIG_ARTIFACT };
115115
FIREBASE_REMOTE_CONFIG_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTALLATIONS_ARTIFACT, FIREBASE_AB_TESTING_ARTIFACT };
116-
FIREBASE_STORAGE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_DATABASE_ARTIFACT, GOOGLE_GTM_SESSION_FETCHER_ARTIFACT /* Needed for sample FIREBASE_AUTH_ARTIFACT */ };
116+
FIREBASE_STORAGE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_DATABASE_ARTIFACT, GOOGLE_GTM_SESSION_FETCHER_ARTIFACT };
117117
FIREBASE_APP_DISTRIBUTION_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTALLATIONS_ARTIFACT };
118118
FIREBASE_APP_CHECK_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTALLATIONS_ARTIFACT, GOOGLE_APP_CHECK_CORE_ARTIFACT };
119119

@@ -406,36 +406,3 @@ void SetArtifactsExtraPodfileLines ()
406406

407407
FIREBASE_IN_APP_MESSAGING_ARTIFACT.ExtraPodfileLines = inAppMessagingLines.ToArray ();
408408
}
409-
410-
void SetArtifactsSamples ()
411-
{
412-
// Firebase components
413-
FIREBASE_AB_TESTING_ARTIFACT.Samples = null;
414-
FIREBASE_ANALYTICS_ARTIFACT.Samples = new [] { "AnalyticsSample" };
415-
FIREBASE_AUTH_ARTIFACT.Samples = new [] { "AuthSample" };
416-
FIREBASE_CLOUD_FIRESTORE_ARTIFACT.Samples = new [] { "CloudFirestoreSample" };
417-
FIREBASE_CLOUD_FUNCTIONS_ARTIFACT.Samples = new [] { "CloudFunctionsSample" };
418-
FIREBASE_CLOUD_MESSAGING_ARTIFACT.Samples = new [] { "CloudMessagingSample" };
419-
FIREBASE_CORE_ARTIFACT.Samples = null;
420-
FIREBASE_CRASHLYTICS_ARTIFACT.Samples = new [] { "CrashlyticsSample" };
421-
FIREBASE_DATABASE_ARTIFACT.Samples = new [] { "DatabaseSample" };
422-
//FIREBASE_IN_APP_MESSAGING_ARTIFACT.Samples = new [] { "InAppMessagingSample" };
423-
FIREBASE_INSTALLATIONS_ARTIFACT.Samples = null;
424-
FIREBASE_PERFORMANCE_MONITORING_ARTIFACT.Samples = new [] { "PerformanceMonitoringSample" };
425-
FIREBASE_REMOTE_CONFIG_ARTIFACT.Samples = new [] { "RemoteConfigSample" };
426-
FIREBASE_STORAGE_ARTIFACT.Samples = new [] { "StorageSample" };
427-
FIREBASE_APP_DISTRIBUTION_ARTIFACT.Samples = null;
428-
FIREBASE_APP_CHECK_ARTIFACT.Samples = new [] { "AppCheckSample" };
429-
430-
// Google components
431-
GOOGLE_ANALYTICS_ARTIFACT.Samples = new [] { "AnalyticsSample" };
432-
GOOGLE_CAST_ARTIFACT.Samples = new [] { "CastSample" };
433-
GOOGLE_MAPS_ARTIFACT.Samples = new [] { "GoogleMapsSample" };
434-
GOOGLE_MOBILE_ADS_ARTIFACT.Samples = new [] { "MobileAdsExample" };
435-
GOOGLE_PLACES_ARTIFACT.Samples = new [] { "GooglePlacesSample" };
436-
GOOGLE_SIGN_IN_ARTIFACT.Samples = new [] { "SignInExample" };
437-
GOOGLE_TAG_MANAGER_ARTIFACT.Samples = new [] { "TagManagerSample" };
438-
439-
// MLKit
440-
MLKIT_VISION.Samples = new [] { "MLKitVisionSample" };
441-
}

docs/BUILDING.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,6 @@ Build and produce `.nupkg` files into `./output`:
4242
dotnet tool run dotnet-cake -- --target=nuget --names=Google.SignIn
4343
```
4444

45-
## Build samples (using source)
46-
47-
Build sample projects (without publishing packages):
48-
49-
```sh
50-
dotnet tool run dotnet-cake -- --target=samples --names=Google.SignIn
51-
```
52-
53-
### Configure the Google Sign-In sample
54-
55-
For a runnable sign-in flow on iOS, the app must register an URL scheme callback. When you provide your own `GoogleService-Info.plist` (or fill in `samples/Google/SignIn/SignInExample/GoogleService-Info.plist.template`), also update `samples/Google/SignIn/SignInExample/Info.plist` so `CFBundleURLSchemes` matches your `REVERSED_CLIENT_ID`.
56-
5745
## Clean-up
5846

5947
To clean generated folders:

docs/Firebase/NuGet/ABTesting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ controller.UpdateExperiments(
104104

105105
Firebase apps commonly require app-specific configuration from your own Firebase project, such as `GoogleService-Info.plist`.
106106

107-
Keep app-specific Firebase configuration in the application project or sample app, not in reusable library projects.
107+
Keep app-specific Firebase configuration in application projects, not in reusable library projects.
108108

109109
If the official Firebase docs for this feature require additional setup, follow those docs first.
110110

docs/Firebase/NuGet/Analytics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Analytics.SetUserId("user-123");
8787

8888
Firebase apps commonly require app-specific configuration from your own Firebase project, such as `GoogleService-Info.plist`.
8989

90-
Keep app-specific Firebase configuration in the application project or sample app, not in reusable library projects.
90+
Keep app-specific Firebase configuration in application projects, not in reusable library projects.
9191

9292
If the official Firebase docs for this feature require additional setup, follow those docs first.
9393

docs/Firebase/NuGet/AppCheck.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ AppCheck.SharedInstance.TokenForcingRefresh(true, (token, error) =>
8989

9090
Firebase apps commonly require app-specific configuration from your own Firebase project, such as `GoogleService-Info.plist`.
9191

92-
Keep app-specific Firebase configuration in the application project or sample app, not in reusable library projects.
92+
Keep app-specific Firebase configuration in application projects, not in reusable library projects.
9393

9494
If the official Firebase docs for this feature require additional setup, follow those docs first.
9595

0 commit comments

Comments
 (0)