Граф коммитов

10018 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 4ec519b7cb [monotouch-test] Fix AVCapturePhotoBracketSettingsTest.TestConstructor to take into account the max bracketed capture photo count. 2021-01-28 08:07:58 +01:00
Rolf Bjarne Kvinge 52e29c4130 [monotouch-test] Adjust version checks according to how they're done now for Mac Catalyst. 2021-01-28 08:07:58 +01:00
Rolf Bjarne Kvinge 4a734d0673 [tests] Adjust TestRuntime.Check*SystemVersion according to how version checks are done on Mac Catalyst now. 2021-01-28 08:07:58 +01:00
Rolf Bjarne Kvinge 13eceb5749 [UIKit] Add a custom version of UIDevice.CheckSystemVersion to Mac Catalyst. Fixes #10453.
Add a custom version of UIDevice.CheckSystemVersion that checks the iOS version for
Mac Catalyst.

Fixes https://github.com/xamarin/xamarin-macios/issues/10453.
2021-01-28 08:07:58 +01:00
Rolf Bjarne Kvinge 72b50c4693 Merge remote-tracking branch 'origin/main' into HEAD 2021-01-28 08:07:48 +01:00
Rolf Bjarne Kvinge bad792983e
[msbuild] Add a BundleIdentifier property to the XcodeCompilerToolTask. (#10480)
* [msbuild] Add a BundleIdentifier property to the XcodeCompilerToolTask.

This way we don't have to read the Info.plist to get the bundle identifier,
which will be a problem in the future, because the Info.plist might not have
the actual bundle identifier we end up using. Instead rely on the
_BundleIdentifier MSBuild property, which will contain the final bundle
identifier.

* [msbuild] Make sure we have a bundle identifier when calling ACTool.

* [msbuild] Make sure we have a bundle identifier when calling IBTool if one is needed.

At the same time make the BundleIdentifier not required, because IBTool may
run for library projects, which doesn't have a bundle identifier.

* [msbuild] _DetectSigningIdentity needs to know the bundle name.

* [msbuild] It shouldn't be necessary to detect the signing identity to compute the bundle name.
2021-01-28 07:54:06 +01:00
Rolf Bjarne Kvinge 179114b870
[monotouch-test] Rework big parts of KeyChainTest. Fixes #xamarin/maccore@2365. (#10492)
* [monotouch-test] Rework big parts of KeyChainTest. Fixes #xamarin/maccore@2365.

'GenericPassword' keychain items are unique by their Service+Account
properties [1]. This means that changing the Label property will not create a
different 'GenericPassword', which has a few consequences:

* It's possible to filter (and try to delete) using the Label property.
* It's possible to try to delete a 'GenericPassword' item, and have that
  deletion attempt fail with 'no item found', and then subsequently trying to
  add the same item will fail with a DuplicateItem, because the deletion
  was filtered using the Label property.

The change I've made is to:

* Make the Label property much more descriptive, and unique per process. This
  makes it easier to figure out where things come from in the Keychain Access
  app.
* Make the Service property unique per process. This way these tests are
  parallel safe and they won't stomp on eachother.
* Keep the Account property the same (a constant value), so that it's easy to
  filter to just these items in the Keychain Access app.
* Remove the Label property from all queries, it doesn't matter anyway. The
  Label property is still set when adding items to the keychain.

Finally try to clean up after ourselves as good as possible. This way we don't
fill the keychain with test stuff. This involves removing certificates and
passwords we add to the keychain at the end of tests.

Fixes https://github.com/xamarin/maccore/issues/2365.

[1]: https://stackoverflow.com/a/11672200/183422

* Adjust query for RecordTest.AuthenticationType as well to not include fields that don't determine uniqueness.

Also make the InternetPassword items we add to the keychain more descriptive and labelled helpfully.
2021-01-28 07:50:34 +01:00
Manuel de la Pena 91ee3b8a34
[CI][VSTS] Use the creds store in git for https. (#10535)
VSTS is using https and not ssh to clone the repos, this means than if
we have any bash that uses git, it will fail. Cred store fixes this by
removing the need to pass the token in all bash scripts.

We remove allways the cred store once we are done.
2021-01-27 15:25:38 -05:00
Rolf Bjarne Kvinge 109688bbb7
[msbuild] Merge the iOS and Mac version of CompileEntitlementsTaskCore. (#10514) 2021-01-27 18:02:21 +01:00
Rolf Bjarne Kvinge 69c1a715c6
[dotnet] Add support for LinkDescription items. (#10467)
* [dotnet] Add support for LinkDescription items.

Also use the LinkDescription item group instead of a custom one
(_BundlerXmlDefinitions), since there's no need for the custom one.

* The world (aka mmp) isn't quite ready for this yet.

* Don't parse into LinkDescription, use a temporary variable instead.

And then only use the temporary variable for .NET.

The problem is that parsing mtouch extra args and adding any --xml arguments
to LinkDescription is that the xml file will be passed again to mtouch, and in
this case any ${ProjectDir} properties won't be evaluated.
2021-01-27 17:59:35 +01:00
Rolf Bjarne Kvinge df4388e8d1
[link sdk] Adjust the LinkSdkRegressionTest.SpecialFolder to handle uncertainty whether a directory exists or not on .NET. Fixes #xamarin/maccore@2379. (#10511)
The directory does not exist for me locally, but exists when running the tests on
the bots.

Fixes https://github.com/xamarin/maccore/issues/2379.
2021-01-27 17:56:43 +01:00
Rolf Bjarne Kvinge 2a61296464
[tests] Ignore the MonoTouchFixtures.ObjCRuntime.RegistrarTest.RegistrarRemoval test, it's failing on .NET. Fixes #xamarin/maccore@2380. (#10513)
Fixes https://github.com/xamarin/maccore/issues/2380.
2021-01-27 17:44:52 +01:00
Sebastien Pouliot e8c7aabdd5
[coredata] Add nullability to (generated and manual) bindings (#10533)
See [HOWTO](https://github.com/xamarin/xamarin-macios/wiki/Nullability)
2021-01-27 09:22:07 -05:00
Manuel de la Pena 4b95a4ca5a
[Maccore] Bump to pick CI fixes. (#10532)
Commits:

* Remove Vincent as a code owner 87e165fdbb
* [CI][VSTS] Add information when the external tool fails. 0dfeb85ff6

Full diff: 55a700bb5b..0dfeb85ff6
2021-01-27 09:47:17 +01:00
Manuel de la Pena 827b2ad674
[Actions] Backports should use forks. (#10530) 2021-01-26 15:41:55 -05:00
Manuel de la Pena 22a5ba1199
[CI][VSTS] Do not use ESRP when no pkgs is present or in a PR. (#10516) 2021-01-26 13:26:27 -05:00
Sebastien Pouliot 6604bd4b9d
[msbuild] Share more code between XI and XM Archive tasks (#10517)
Xamarin.Mac was already simplified for dSYM in a previous PR.

Additional sharing will require to determine what Catalyst needs.
2021-01-26 11:15:06 -05:00
Sebastien Pouliot f98b901d53
[xtro] Fix Catalyst support (#10518)
Ensure we run sanity checks so the `.todo` files remains up-to-date with
the required work. Updated existing `.todo` files to avoid duplication
errors.

Fix the report. The number of columns varies locally (more details) and
on bots. The former was not right since the original catalyst update.
2021-01-26 10:23:43 -05:00
Alex Soto 1f6f8d8c94
[main] Bump versions to a post d16-9 world (#10521) 2021-01-26 09:26:52 -05:00
Manuel de la Pena a3b7520b98
[CI][VSTS] Set to no output vars back to be in the env. (#10515)
If we set the variables as output variables they are not accessible by
the bash scripts resulting in a warning.
2021-01-25 15:38:01 -05:00
Rolf Bjarne Kvinge e95eb1890c
Bump .NET to 6.0.100-alpha.1.21064.27. (#10501) 2021-01-25 09:06:01 +01:00
Manuel de la Pena b3469fd5a0
[CI][VSTS] Fix needed in ESRP landed in the prod feed so we can use it now. (#10494) 2021-01-22 12:13:01 -05:00
Rolf Bjarne Kvinge a06ae76c36
[monotouch-test] Be more descriptive and clean up stuff added to the keychain. (#10493)
* [monotouch-test] Use a more descriptive label for items added to the keychain in KeyTest.

* [monotouch-test] Use a more descriptive label for some items in CertificateTest.

Also make generated keys non-permanent so that they're not added to the keychain.

* [monotouch-test] Clean up a few items added to the keychain by CertificateTest.
2021-01-22 16:15:11 +01:00
Manuel de la Pena 5dbc349c0b
[CI][VSTS] Add a poor mans debugger. (#10495) 2021-01-22 10:08:51 -05:00
Manuel de la Pena 335ac8fe15
[CI][VSTS] Continue on profiles failure. (#10487)
We want to continue and generate the pkgs, the failure of this step only
results in failing tests.

fixes: https://github.com/xamarin/maccore/issues/2376
2021-01-21 15:20:00 -05:00
Manuel de la Pena ad72f32e30
[CI][VSTS] Ensure that the required simulators are present in the machine. (#10486) 2021-01-21 15:16:36 -05:00
Manuel de la Pena 8ec5937de7
[CI][VSTS] Remove ALL .xip (#10483)
This is clearly something that has a human behind it and not a script. We
have seen Xcode*.xip which is the download name BUT also xcode12.xip
which looks like a point&click intervention
(https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=4387395&view=logs&j=f0137cdf-e292-5541-69aa-72303a08a0ba&t=59bea1c0-f907-5818-000e-f6fef9d3ffa2&l=234)
2021-01-21 09:47:34 -05:00
Manuel de la Pena 197c114702
[VSTS][CI] Add links with the generated pkgs. (#10481) 2021-01-21 09:43:27 -05:00
Rolf Bjarne Kvinge c48c62fed5
[msbuild] Unify how CFBundleName is calculated. (#10475)
* [msbuild] Unify how CFBundleName is calculated.

Previously, CFBundleName would default to:

* iOS: CFBundleDisplayName (if set), otherwise the app bundle name.
* all other platforms: the app bundle name.

Now unify the logic so that we have the same behavior on all platforms.

This is a breaking change under the following conditions:

* Building for iOS
* CFBundleName is not set in the Info.plist
* CFBundleDisplayName is set in the Info.plist
* CFBundleDisplayName from the Info.plist is different from AssemblyName in
  the csproj (which is the value used to calculate the app bundle name).

The fix would be to:

* Set CFBundleName in the Info.plist to the desired value.

This change works in previous versions of Xamarin.iOS as well.

* Update tests.
2021-01-21 14:29:19 +01:00
Rolf Bjarne Kvinge d1c9cb2198
[msbuild] Simplify some code in DetectSigningIdentityTask. (#10479)
* We assigned the same value to DetectedBundleId in every branch, so instead
  assign it once at the beginning.
* We assigned the same value to DetectedAppId to most branches, so instead
  assign that value at the beginning as a default value.
2021-01-20 21:26:01 +01:00
Rolf Bjarne Kvinge 4a32d37c5d
[msbuild] Remove unused property from DetectSigningIdentityTask. (#10478) 2021-01-20 21:23:51 +01:00
Manuel de la Pena 6cebeca4db
[CI][VSTS] Move to ESRP for notarization. (#10444)
This change perse does not do other thing than removing the use of
virtuanenv and remove the installation of python-magic.

We have taken this approach because the images that will be used to provision the CI
bots will have python-magic installed by default. We want to do this
because:

1. CI should not be modifying the machine, we do not install any pkg.
2. python-magic should be present, if not, we will get an import error
   and we will know how to fix it (re-image).
2021-01-20 13:09:17 -05:00
Manuel de la Pena ff33a72a2b
[Xharness] Fix the xharness links to work with vsdrops. (#10469)
We need to add the prefix to the xharness logs or we will not be able to
acceess them via a click.
2021-01-20 08:00:24 -05:00
Rolf Bjarne Kvinge ae2243adad
[dotnet-linker] Delete unnecessary NuGet.config. (#10466) 2021-01-20 12:24:11 +01:00
Rolf Bjarne Kvinge c0ecd33bf9
[mlaunch] Improve make logic to only install bin/mlaunch if it changed. (#10461)
This way the bin directory doesn't unnecessarily get an updated timestamp, so
that some build targets in the dotnet/ directory don't rebuild unnecessarily.
2021-01-20 08:16:28 +01:00
Rolf Bjarne Kvinge 3b7373cc26
Bump maccore. (#10427)
New commits in xamarin/maccore:

* xamarin/maccore@55a700bb5b [build] Add /restore to Xamarin.Analysis build (#2366)
* xamarin/maccore@2d9f8a9685 Bump to xamarin/xamarin-analysis@95245313 (#2362)
* xamarin/maccore@428964bf32 [Device tests] Remove all the code related with vsts pipelines. (#2344)
* xamarin/maccore@3875d125da Ignore vscode config files. (#2343)
* xamarin/maccore@55ca0540ef [Actions] Add a rebase action. (#2341)
* xamarin/maccore@d0bad0f87a [Actions] Add the backport action. (#2340)

Diff: 5133d2cea1..55a700bb5b

Co-authored-by: Peter Collins <pecolli@microsoft.com>
2021-01-20 08:12:20 +01:00
Rolf Bjarne Kvinge 41c56269f6
[tests] Adjust link all's project file to set properties to their expected values according to the current configuration. (#10468)
Also don't overwrite DefineConstants, just add to it instead.
2021-01-20 07:15:33 +01:00
Manuel de la Pena 0aa7d32d79
[CI][VSTS] Remove warning from mac tests upload. (#10442)
The template does not expand wildcards. The template does not know how to
reuse paths.
2021-01-19 11:25:50 -05:00
Sebastien Pouliot 1ab5e2b3fa
[msbuild] Fix codesign `StampPath`. Fix #10445 (#10459)
Using `Path.Combine` with a full qualified path for the 2nd argument will
return that 2nd argument (ignoring the first one).

That meant the `StampPath` was pointing to the actual files that were
just signed - overwriting them with a 0-length data (empty).

The solution is to make the 2nd argument relative, starting after
`.app/` so `Path.Combine` works as expected (being relative) while
allowing signing multiple files that have the same name (in different
directories).

ref: https://github.com/xamarin/xamarin-macios/issues/10445
2021-01-19 11:09:47 -05:00
Sebastien Pouliot 77c154df35
[mtouch][mmp] Exclude extraneous framework files from being copied into apps (#10441)
Today both `mtouch` and `mmp` are copying the entire `.framework`
directories inside the `.app\[Contents\]Frameworks\` directory.

However not everything in a framework is required at runtime. The most
common unrequired files would be headers (`Headers/*.h`) and modules
(`Modules/*`).

Looking at Xcode build output we can see something like:

```
builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -exclude Headers -exclude PrivateHeaders -exclude Modules -exclude \*.tbd -bitcode-strip replace-with-marker -bitcode-strip-tool
```

which excludes a few more, less common, files.

This _builtin_ command is not available externally (for us to re-use)
but it hints that Xcode is likely using `rsync` to avoid copying part of
the files.

Note: the builtin command also _likely_ calls `bitcode_strip` too (or has
similar code embedded) and `mtouch` already does so too

There's a cost to spawning an external process, like `rsync`, which we
avoid by having our own file copier, which clones files (almost zero
cost). That does not support excluding files, but deleting files is also
very cheap. Testing shows copying a framework to be less than 1 ms, even
with with extra deletion step.

* Tweak `GetRealPath` to optionally not to warn if the path does not exists

since, in this case, it's a check we want to do after resolving the path

This fixes several (5) MTouch tests looking for specific (and no extra)
warnings

```
Unable to canonicalize the path '/Users/builder/azdo/_work/2/s/xamarin-macios/tests/mtouch/bin/Debug/tmp-test-dir/Xamarin.Tests.BundlerTool.CreateTemporaryDirectory195/testApp.app/Frameworks/Mono.framework/CVS': No such file or directory (2).
```
2021-01-19 08:48:10 -05:00
Rolf Bjarne Kvinge a867cf4b4f
[tests] Fix reporting exit code for .NET tests. (#10460) 2021-01-19 14:30:16 +01:00
Sebastien Pouliot 56d073317a
[tools] Do not check the existing of a file before deleting it (#10443)
because:

> If the file to be deleted does not exist, no exception is thrown.

https://docs.microsoft.com/en-us/dotnet/api/system.io.file.delete?view=net-5.0

and yes this is different from `Directory.Delete` and PR https://github.com/xamarin/xamarin-macios/pull/10441

* Fix MT0015 test failure

The MT0015 test creates a directory where a file is expected.

That's fine except the code for handling this was a bit weird. It
worked because of a `TryDelete` on the path, which avoided the
`UnauthorizedAccessException` when `File.Delete` is used on a path.
Then later there's a `Directory.Exists` check that would throw...

The code now does the `Directory.Exists` first and only call
`File.Delete` if it returns false. The throwing of the exception
is kept since the code (and test) are already present (and this
minimize changes and chance of other surprises)
2021-01-19 08:29:11 -05:00
Rolf Bjarne Kvinge 3dbdc1ea81
[dotnet-linker] Add the RemoveUserResources sub step. (#10456)
* [dotnet-linker] Add the RemoveUserResources sub step.

This comes with a few changes to the RemoveUserResources sub step as well:

* Bail out earlier if we're in the simulator (no need to do any processing at
  all - we know at the very beginning if we're building for the simulator).
* Do a positive simulator check, instead of a negative device check (because
  Mac[Catalyst] are neither devices - so they pass the negative device check).
* Remove all the conditional mtouch/mmp code, and figure out at runtime which
  resource prefixes we need to check for.

It was also necessary to change where steps are added to the pipeline: we have
to remove resources before the OutputStep, but at the same time we have to do
it after the ExtractBindingLibraries step, otherwise the
ExtractBindingLibraries step won't find any binding libraries to extract. So
move the ExtractBindingLibraries, LoadNonSkippedAssemblies and
ListExportedSymbols to before the OutputStep (to keep their internal order),
and then add the RemoveUserResources after those.

This fixes the following link sdk/link all test when running on device:

    BundledResources.ResourcesTest
        [FAIL] Bundled :   No resources
            Expected: 0
            But was:  2

* [tests] Update the BuildInterdependentBindingProjects test now that we're removing resources.
2021-01-19 14:06:25 +01:00
Rolf Bjarne Kvinge bc7af2ebb7
[tests] Ignore a few known failures in link sdk / link all on device with .NET. (#10458) 2021-01-19 07:53:13 +01:00
Rolf Bjarne Kvinge 02647475e3
[msbuild] Remove duplicate trailing slash from _XamarinBclPath. Fixes #10446. (#10449)
_XamarinBclPath always has a trailing slash, so no need to add another one
when adding subdirectories to it.

Fixes https://github.com/xamarin/xamarin-macios/issues/10446.
2021-01-18 16:42:40 +01:00
Rolf Bjarne Kvinge fc5ae53649
[dotnet] Bump ILLink to get an updated linker reference assembly. (#10450)
This allows us to undo a workaround we made for a missing API in the linker
reference assembly (an AnnotationStore.AddPreservedMethod overload).

This also requires a change to use MessageContainer.CreateCustomErrorMessage
instead of MessageContainer.CreateErrorMessage, because apparently having a
reference assembly doesn't mean there can't be incompatible changes in it 😒.
2021-01-18 14:28:31 +01:00
Rolf Bjarne Kvinge b644e23adf
[tests] Don't use the tcp tunnel in the HttpClientHandler tests. Fixes xamarin/maccore#2154. (#10451)
Fixes https://github.com/xamarin/maccore/issues/2154.
2021-01-18 14:27:34 +01:00
Rolf Bjarne Kvinge aa671914f9
[dotnet] Remove workaround for mono/linker#1304, which has now been fixed. (#9862) 2021-01-18 08:21:31 +01:00
Rolf Bjarne Kvinge 18ab7db7c7
[xharness] Fix warning about unknown file wrt default inclusion. (#10438)
Fixes this warning when running xharness:

    Unknown file: fsharplibrary.fsproj (extension: .fsproj). There might be a default inclusion behavior for this file.
2021-01-18 07:28:39 +01:00
Rolf Bjarne Kvinge aa1bf71cd6 [monotouch-test] Make it work with Mac Catalyst.
* Fix system version checks to work properly on Mac Catalyst (which uses the macOS
  version as its system version).

* Add the framework-specific defines to the build for monotouch-test.csproj (using
  the generated response files), this way we can use them in the tests.

* Sprinkle conditionals in numerous places - I tried using either framework-specific
  or XAMCORE_3_0 whenever that made since (instead of using Mac Catalyst as a condition).

* Updated a few tests to use non-deprecated API (because the deprecated API often
  doesn't exist in Mac Catalyst).

* Also a few minor API fixes to make any corresponding tests compile.
2021-01-15 17:52:28 +01:00