4eda43b1c9
TL&DR: This effectively change nothing - but prevents (warn) if both options contradict themselves. Long Story.... So we have two ways to control the codesign's `--timetamp` option but they both ignore each other so we can end up with the option being set more than once at build time. `DisableTimestamp` was the original one. It was meant for iOS (and derivative OS) and disable the option (which requires the network) for simulator or debug builds. IOW we _wanted_ timestamps when doing release builds for devices. ``` DisableTimestamp="$(_CodesignDisableTimestamp)" ``` ``` <_CodesignDisableTimestamp>False</_CodesignDisableTimestamp> <_CodesignDisableTimestamp Condition="'$(_SdkIsSimulator)' == 'true' Or '$(_BundlerDebug)' == 'true'">True</_CodesignDisableTimestamp> ``` Now disabling the timestamp did not mean it was enabled. We did not ask for a timestamp, leaving it to the default which from `man codesign` means: > If this option is not given at all, a system-specific default behavior is invoked. > This may result in some but not all code signatures being timestamped. Then `UseSecureTimestamp` was added for macOS builds. If hardening is enabled then a secure timestamp is required. `msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Common.targets` `_CodesignAppBundle` ``` UseSecureTimestamp="$(UseHardenedRuntime)" ``` However it's also exposed for iOS (shared target) in `msbuild/Xamarin.Shared/Xamarin.Shared.targets` `__CodesignNativeLibraries` but it would always be `false` in that case. Adding this option means there's now always a `--timestamp` option given, either to enable it (no URL so it means using Apple's server) or to disable it (`=none`) but since it's controlled by `UseHardenedRuntime`, which is macOS only, then iOS device builds are never timestamped. An alternative would be to have `UseSecureTimestamp` as a macOS-only option - but that would change how we currently sign the iOS applications and I'd rather not change things that are known to work. |
||
---|---|---|
.github/workflows | ||
builds | ||
docs | ||
dotnet | ||
external | ||
fsharp | ||
jenkins | ||
mk | ||
mono | ||
msbuild | ||
opentk | ||
runtime | ||
src | ||
tests | ||
tools | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
CODEOWNERS | ||
ISSUE_TEMPLATE.md | ||
LICENSE | ||
Make.config | ||
Make.versions | ||
Makefile | ||
NOTICE.txt | ||
NuGet.config | ||
README.md | ||
SECURITY.MD | ||
Versions-ios.plist.in | ||
Versions-mac.plist.in | ||
Xamarin.Mac.sln | ||
Xamarin.iOS.sln | ||
banner.png | ||
configure | ||
mac-entitlements.plist | ||
product.snk | ||
system-dependencies.sh | ||
versions-check.csharp |
README.md
Xamarin.iOS & Xamarin.Mac
Welcome!
This module is the main repository for both Xamarin.iOS and Xamarin.Mac.
These SDKs allow us to create native iOS, tvOS, watchOS and macOS applications using the same UI controls we would in Objective-C and Xcode, except with the flexibility and elegance of a modern language (C#), the power of the .NET Base Class Library (BCL), and two first-class IDEs—Visual Studio for Mac and Visual Studio—at our fingertips.
This repository is where we do development for the Xamarin.iOS and Xamarin.Mac SDKs. There are a few ways that you can contribute, for example:
- Submit bugs and feature requests
- Review source code changes
- Submit pull requests to resolve issues and fix bugs
Contributing
If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute, which covers the following:
- How to build and run from source
- The development workflow, including debugging and running tests
- Coding Guidelines
- Submitting pull requests
Downloads
The preferred method for installing Xamarin.iOS and Mac is to use the Visual Studio installers (Windows, Mac).
The team also strongly recommends using the latest Xamarin SDK and Xcode whenever possible.
However, we provide links to older Xamarin.iOS and Mac packages for macOS downgrades and build machine configuration.
Version | Xamarin.iOS | Xamarin.Mac |
---|---|---|
d16.7 | 14.2.0.12 | 6.20.2.2 |
d16.6 | 13.18.2.1 | 6.18.2.1 |
d16.5 | 13.16.0.13 | 6.16.0.13 |
d16.4 | 13.10.0.21 | 6.10.0.21 |
d16.3 | 13.6.0.12 | 6.6.0.12 |
d16.2 | 12.14.0.114 | 5.14.0.114 |
d16.1 | 12.10.0.157 | 5.10.0.157 |
d16.0 | 12.8.0.2 | 5.8.0.0 |
Feedback
- Ask a question on Stack Overflow or the Xamarin Forums
- Request a new feature on GitHub
- Vote on existing feature requests
- Submit bugs to GitHub Issues
- Discuss development and design on Discord
License
Copyright (c) .NET Foundation Contributors. All rights reserved. Licensed under the MIT License.