* [Accounts] Uodate to Xcode 9 Beta 1
Also added ACAccountStore.RemoveAccount, xtro caught this API
common.unclassified:!missing-selector! ACAccountStore::removeAccount:withCompletionHandler: not bound
* [Accounts] Adds a dot at the end of the sentance.
Set the min deployment target to 7.0 for a test to make sure ibtool doesn't
complain, and fix the list of expected bundle resources by adding Assets.car
to the list.
Fixes the following failures:
1. Xamarin.iOS.Tasks.TargetTests.BuildExecutable : #RunTarget-ErrorCount
ibtool exited with code 1
Compiling IB documents for earlier than iOS 7 is no longer supported.
Expected: 0
But was: 2
2. Xamarin.iOS.Tasks.TargetTests.BundleResources : #RunTarget-ErrorCount
ibtool exited with code 1
Compiling IB documents for earlier than iOS 7 is no longer supported.
Expected: 0
But was: 2
3. Xamarin.iOS.Tasks.TargetTests.CleanExecutable : #RunTarget-ErrorCount
ibtool exited with code 1
Compiling IB documents for earlier than iOS 7 is no longer supported.
Expected: 0
But was: 2
4. Xamarin.iOS.Tasks.TargetTests.CopyContentToBundle : #RunTarget-ErrorCount
ibtool exited with code 1
Compiling IB documents for earlier than iOS 7 is no longer supported.
Expected: 0
But was: 2
5. Xamarin.iOS.Tasks.TargetTests.Disappearing_Bundle_Resource : #2
Expected: True
But was: False
6. Xamarin.iOS.Tasks.TargetTests.Disappearing_Content : #2
Expected: True
But was: False
7. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_DefaultValue : #RunTarget-ErrorCount
ibtool exited with code 1
Compiling IB documents for earlier than iOS 7 is no longer supported.
Expected: 0
But was: 2
8. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_False : #RunTarget-ErrorCount
ibtool exited with code 1
Compiling IB documents for earlier than iOS 7 is no longer supported.
Expected: 0
But was: 2
9. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_True : #RunTarget-ErrorCount
ibtool exited with code 1
Compiling IB documents for earlier than iOS 7 is no longer supported.
Expected: 0
But was: 2
10. Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_NoModifications : #RunTarget-ErrorCount
ibtool exited with code 1
Compiling IB documents for earlier than iOS 7 is no longer supported.
Expected: 0
But was: 2
11. Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_TouchLibraryDll : #RunTarget-ErrorCount
ibtool exited with code 1
Compiling IB documents for earlier than iOS 7 is no longer supported.
Expected: 0
But was: 2
12. Xamarin.iOS.Tasks.TargetTests.UnpackLibraryResources_ExecutableProject : #RunTarget-ErrorCount
ibtool exited with code 1
Compiling IB documents for earlier than iOS 7 is no longer supported.
Expected: 0
But was: 2
* [EventKit] Obsolete the EKAlarm constructor and update tests.
Apple's documentation says "Use the alarmWithAbsoluteDate: and
alarmWithRelativeOffset: class methods to create an alarm", and additionally
calling the default constructor crashes, so obsolete the constructor and don't
call it from tests either.
* [EventKit] Make EKCalendarItem abstract according to Apple's documentation.
Since EKCalendarItem is an abstract class, tests should obviously not create
instances of it - and in fact it fails:
[FAIL] CalendarItemTest.NullAllowedTest : Foundation.MonoTouchException : Objective-C exception thrown. Name: NSInvalidArgumentException Reason: +[EKCalendarItem frozenClass]: unrecognized selector sent to class 0x10e02bfa0
* [tests] Remove removed file from xammac tests as well.
* [Test][Intro] Fix introspection test on API changes for Xcode 9 Beta 1
* [introspection] Fix feedback from PR and bot tests
Removed XAMCORE_4_0 checks from our api definition, and added
a file with stubs for all of them instead. Cleaner binding file
and easier to remove in the future
Fixed introspection also for mac by moving some check into base test definition
* [CoreImage] Add CoreImage stubs so introspection test are happy
These need to be manually reviewed by whoever takes CoreImage framework
tracked in bugzilla so we do not forget
* Do the same API cleanup as in NSUnit
* [test][introspection] Enable MtouchNoSymbolStrip for device builds in order to avoid linking symbols meeded by test (#2196)
Rolf Kvinge [8:59 AM]
@dalexsoto the fix is to not strip the executable please PR that
(it should probably go into master as well). This probably started
happening when Jeff implemented support for stripping debug builds
(previously the setting was ignored)
* [foundation] Provide better messages
* [CoreImage] Fix Availability of CIEdgePreserveUpsampleFilter
The simulators now have an updated libsqlite3.dylib, so this test needs to be
updated accordingly.
This fixes a link sdk test failure:
[FAIL] DllImportTest.Sqlite3 : sqlite3_key
* [monotouch-test] Disable EmptyNib tests due to Xcode9 no longer builds nibs if deployment target < 7.0
EmptyNib.xib : ibtool error : Compiling IB documents for earlier than iOS 7 is no longer supported.
* [monotouch-test] Fixt CalendarTest.TestEnumerateDates
It seems that NSCalendar.CurrentCalendar.EnumerateDatesStartingAfterDate
won't stop enumerating unless `stop` is set to `true`.
* [Tests] Add CheckXcodeVersion support for Xcode 9
* [introspection] Avoid introspection to crash with Xcode 9 Beta 1
* [monotouch-test] bring back LogicalName removal from monotouch-test.csproj
- Update Versions-ios and Versions-mac file too.
- Bump maccore and maciostools to the xcode9 branch.
- [builds] Force disable 'futimens' and 'utimensat' so that we build with Xcode 9.
- [builds] 'system' is not available on iOS (simulator).
- [runtime] Fix: cannot initialize a variable of type 'char *' with an rvalue of type 'const char *'
- Prevented building xcode9 branch, see: https://jenkins.mono-project.com/job/xamarin-macios-pr-builder/3886/console
```
runtime.m:1122:9: error: cannot initialize a variable of type 'char *' with an rvalue of type 'const char *'
char *last_sep = strrchr (info.dli_fname, '/');
```
- [registrar] Apple removed a header, so don't include it anymore.
- [mtouch] Don't run the partial static registrar for tvOS.
The generated output doesn't compile because Apple forgot to ship headers for
the ExternalAccessory framework in their tvOS simulator SDK.
* [mtouch] Improve how we make sure native symbols aren't stripped away. Fixes#51710 and #54417.
* Refactor required symbol collection to store more information about each
symbol (field, function, Objective-C class), and in general make the code
more straight forward.
* Implement support for generating source code that references these symbols,
and do this whenever we can't ask the native linker to keep these symbols
(when using bitcode). Additionally make it possible to do this manually, so
that the source code can be generated for non-bitcode platforms too (which
is useful if the number of symbols is enormous, in which case we might
surpass the maximum command-line length).
* Also make it possible to completely ignore native symbols, or ignore them on
a per-symbol basis. This provides a fallback for users if we get something
right and we try to preserve something that shouldn't be preserved (for
instance if it doesn't exist), and the user ends up with unfixable linker
errors.
* Don't collect Objective-C classes unless they're in an assembly with
LinkWith attributes. We don't need to preserve Objective-C classes in any
other circumstances.
* Implement everything for both Xamarin.iOS and Xamarin.Mac, and share the
code between them.
* Remove previous workaround for bug #51710, since it's no longer needed.
* Add tests.
https://bugzilla.xamarin.com/show_bug.cgi?id=54417https://bugzilla.xamarin.com/show_bug.cgi?id=51710
* [mtouch] Make sure to only keep symbols from the current app when code sharing.
This fixes a build problem with the interdependent-binding-projects test when
testing in Today Extension mode.
We already create dSYMs for Mono.framework when apps are built, but this will
now become redundant and removed at a later stage. This will make app builds
slightly faster (yay) at the cost of a somewhat bigger XI package (and our
build will be equivalently slower).
We never created dSYMs for libmonosgen-2.0.dylib, which means that anybody
symbolicating crash reports will now get file name and line number information
in stack traces (it also makes debugging using lldb possible).
* [registrar] Detect more invalid characters in selectors so that we can report better errors. Fixes#55568.
https://bugzilla.xamarin.com/show_bug.cgi?id=55568
* [mtouch] Add a few comments about duplicated data between mtouch and tests.
In 11390f119c we stopped setting the force flag
when the cache was invalid, because we'd delete the cache anyway, and it was
determined that deleting the cache was enough.
Unfortunately it's not, because some output is not in the cache, and might not
get correctly updated.
Scenario:
* User builds app.
* User changes some build option (for instance switching off incremental
builds).
* User does an insignificant change in a source file for the executable
process.
* User builds app again (without cleaning). This will rebuild the exe, but
since the change was insignificant, all the IL, except the MVID, would
remain identical.
* mtouch would see that the command-line options changed, and invalidate the
cache. This would delete the cache, and everything would be rebuilt,
including AOT-compiling the assemblies again.
* When the time came for mtouch to copy assemblies to the app directory,
mtouch would realize that the existing .exe in the app (which was not
deleted because it's not in the cache, but the actual output directory) was
only insignificantly different (only the MVID was different, which our cache
logic knows to ignore when comparing assemblies), so it wouldn't copy the
.exe to the .app.
* At runtime we'd assert, because the MVID in the aot-compiled code was
different from the MVID in the assembly:
error: Failed to load AOT module '(null)' while running in aot-only mode: doesn't match assembly.
* The exact assert varies depending on which build option changed. Other
variations:
Failed to load AOT module '(null)' while running in aot-only mode: compiled against GC (4, while the current runtime uses GC sgen)
* Assertion at /Users/builder/data/lanes/4691/0719ced1/source/xamarin-macios/external/mono/mono/metadata/metadata.c:1118, condition `idx < t->rows' not met
Because of this I'm reverting 11390f119c, and
once again setting the force flag when the cache is invalid. It might be
overkill, but it's the safest option (cache invalidation is after all the only
hard problem in computer science), and bugs are very annoying and
timeconsuming to track down.
https://bugzilla.xamarin.com/show_bug.cgi?id=54973
This change introduces the export of create_classes methods as objc compatible, without enforcing Objective-C++ as the development language for custom registrar embedders by moving the stringbuilder flushing inside the extern "C" block.
Mark the generated linking code as extern "C" too and also change the return type of xamarin_create_classes_Xamarin_Mac to void in mmp generation, as it was mistakenly set to int.