Udostępnij za pośrednictwem


Komunikaty o błędach platformy Xamarin.Mac (mmp)

MM0xxx: komunikaty o błędach mmp

Na przykład parametry, środowisko, brakujące narzędzia.

MM0000: Nieoczekiwany błąd — zgłoś raport o błędzie pod adresem https://github.com/xamarin/xamarin-macios/issues/new

Wystąpił nieoczekiwany warunek błędu. Zgłoś raport o usterce z jak największą ilością informacji, w tym:

  • Pełne dzienniki kompilacji z maksymalną szczegółowością (np. -v -v -v -v w dodatkowych argumentach mmp);
  • Minimalny przypadek testowy, który odtworzy błąd; I
  • Wszystkie informacje o wersji

Najprostszym sposobem uzyskania dokładnych informacji o wersji jest użycie menu programu Xamarin Studio , informacje o elemencie Xamarin Studio , przycisku Pokaż szczegóły i skopiowaniu/wklejeniu informacji o wersji (możesz użyć przycisku Kopiuj informacje ).

MM0001: Ta wersja platformy Xamarin.Mac wymaga platformy Mono {0} (bieżąca wersja mono to {1}). Zaktualizuj platformę Mono.framework z witryny https://mono-project.com/Downloads

MM0003: Nazwa aplikacji "{0}.exe" powoduje konflikt z nazwą zestawu SDK lub zestawu produktu (.dll).

MM0007: Zestaw główny "{0}" nie istnieje

MM0008: Należy podać tylko jeden zestaw główny, znalezione {0} zestawy: "{1}"

MM0009: Błąd podczas ładowania zestawów: *.

Wystąpił błąd podczas ładowania zestawów z odwołań do zestawu głównego. Więcej informacji można znaleźć w danych wyjściowych kompilacji.

MM0010: Nie można przeanalizować argumentów wiersza polecenia: {0}

MM0016: Opcja "{0}" została wycofana.

MM0017: Należy podać zestaw główny

MM0018: Nieznany argument wiersza polecenia: "{0}"

MM0020: Prawidłowe opcje dla "{0}" to "{1}".

MM0023: Nazwa aplikacji "{0}.exe" powoduje konflikt z innym zestawem użytkownika.

MM0026: Nie można przeanalizować argumentu wiersza polecenia "{0}": {1}

MM0043: Moduł odśmiecający pamięci Boehm nie jest obsługiwany. Zamiast tego wybrano moduł odśmiecaczy SGen.

MM0050: Nie można podać zestawu głównego, jeśli zostanie przekazany zestaw --no-root-assembly.

MM0051: Katalog wyjściowy (--output) jest wymagany, jeśli przekazano parametr --no-root-assembly.

MM0053: Nie można wyłączyć nowego konta refcount za pomocą ujednoliconego interfejsu API.

MM0056: Nie można odnaleźć programu Xcode w żadnej z naszych domyślnych lokalizacji. Zainstaluj program Xcode lub przekaż niestandardową ścieżkę przy użyciu parametru --sdkroot=<path>

MM0059: Nie można odnaleźć aktualnie wybranego środowiska Xcode w systemie: {0};

MM0060: Nie można odnaleźć aktualnie wybranego środowiska Xcode w systemie. Element "xcode-select --print-path" zwrócił "{0}", ale ten katalog nie istnieje.

MM0068: Nieprawidłowa wartość struktury docelowej: {0}.

MM0071: Nieznana platforma: *. Zwykle oznacza to usterkę na platformie Xamarin.Mac; Zgłoś raport o usterce z przypadkiem testowym.

Zwykle oznacza to usterkę na platformie Xamarin.Mac; Zgłoś raport o usterce z przypadkiem testowym.

MM0073: Xamarin.Mac * nie obsługuje docelowego wdrożenia * (minimum to *). Wybierz nowszy element docelowy wdrożenia w pliku Info.plist projektu.

Minimalny cel wdrożenia jest określony w komunikacie o błędzie; Wybierz nowszy element docelowy wdrożenia w pliku Info.plist projektu.

Jeśli aktualizacja docelowego wdrożenia nie jest możliwa, użyj starszej wersji platformy Xamarin.Mac.

MM0074: Xamarin.Mac * nie obsługuje docelowego wdrożenia * (maksymalna wartość to *). Wybierz starszy cel wdrożenia w pliku Info.plist projektu lub uaktualnij go do nowszej wersji platformy Xamarin.Mac.

Platforma Xamarin.Mac nie obsługuje ustawiania minimalnej wartości docelowej wdrożenia na wyższą wersję niż ta określona wersja platformy Xamarin.Mac została skompilowana.

Wybierz starszy minimalny cel wdrożenia w pliku Info.plist projektu lub uaktualnij go do nowszej wersji platformy Xamarin.Mac.

MM0079: Błąd wewnętrzny — plik wykonywalny nie został skopiowany do pakietu aplikacji. Skontaktuj się z "support@xamarin.com"

MM0080: Wyłączenie polecenia NewRefCount, --new-refcount:false, jest przestarzałe.

Xamarin.Mac wymaga plików nagłówkowych z wersji zestawu SDK określonej w komunikacie o błędzie, aby skompilować aplikację przy użyciu statycznego registrarelementu . Zalecanym sposobem rozwiązania tego błędu jest uaktualnienie środowiska Xcode w celu pobrania wymaganego zestawu SDK. Spowoduje to uwzględnienie wszystkich wymaganych plików nagłówków. Jeśli masz zainstalowane wiele wersji programu Xcode lub chcesz użyć programu Xcode w lokalizacji innej niż domyślna, upewnij się, że ustawiono poprawną lokalizację środowiska Xcode w preferencjach środowiska IDE.

Jednym z potencjalnych, alternatywnych rozwiązań jest włączenie zarządzanego konsolidatora. Spowoduje to usunięcie nieużywanego interfejsu API, w tym w większości przypadków nowego interfejsu API, w którym brakuje plików nagłówka (lub niekompletnych). Nie będzie to jednak działać, jeśli projekt używa interfejsu API wprowadzonego w nowszym zestawie SDK niż ten, który zapewnia Twój kod Xcode.

Drugi potencjał, alternatywne rozwiązanie, to zamiast tego użyć dynamicznego registrar . Spowoduje to narzucenie kosztów uruchamiania przez dynamiczne rejestrowanie typów, ale usunięcie wymagania dotyczącego pliku nagłówka.

Ostatnim rozwiązaniem jest użycie starszej wersji platformy Xamarin.Mac, która obsługuje zestaw SDK wymagany przez projekt.

MM0097: nie można odnaleźć pliku machine.config "{0}".

MM0098: Kompilacja AOT jest dostępna tylko w ujednoliconej wersji

MM0099: Błąd {0}wewnętrzny . Zgłoś raport o usterce z przypadkiem testowym.

MM0114: Kompilacja hybrydowej AOT wymaga skompilowania wszystkich zestawów.

MM0129: Plik symboli debugowania dla elementu "*" nie jest zgodny z zestawem i jest ignorowany.

Symbole debugowania — plik .pdb (tylko przenośny plik pdb) lub plik .mdb — nie można załadować określonego zestawu.

Zazwyczaj oznacza to, że zestaw jest nowszy lub starszy niż symbole. Ponieważ nie są zgodne, nie mogą być używane, a symbole są ignorowane.

To ostrzeżenie nie wpłynie na kompilowanie aplikacji, ale może nie być w stanie jej całkowicie debugować (w szczególności kodu z określonego zestawu). Ponadto wyjątki, ślady stosu i raporty awarii mogą nie zawierać niektórych informacji.

Zgłoś ten problem wydawcy pakietu zestawu (np. autor nuGet), aby można było rozwiązać ten problem w przyszłych wersjach.

MM0130: Nie znaleziono zestawów głównych. Należy podać co najmniej jeden zestaw główny.

Podczas uruchamiania --runregistrarprogramu należy podać co najmniej jeden zestaw główny.

MM0131: Nie można odnaleźć zestawu produktu "{0}" na liście zestawów: "{1}"

Podczas uruchamiania --runregistrarlista zestawów powinna zawierać zestaw produktu, Xamarin.Mac, XamMac.

MM0132: Nieznana optymalizacja: *. Prawidłowe wartości to: *

Określona optymalizacja nie została rozpoznana.

Akceptowany format to [+|-]optimization-name, gdzie optimization-name jest jedną z wartości wymienionych w komunikacie o błędzie.

Zobacz Optymalizacje kompilacji , aby uzyskać pełny opis każdej optymalizacji.

MM0133: Znaleziono więcej niż 1 zestaw pasujący do "{0}" wybierając najpierw: "{1}"

MM0134: aplikacje 32-bitowe powinny być migrowane do 64-bitowej wersji.

Firma Apple ogłosiła, że nie będzie zezwalać na przesyłanie aplikacji 32-bitowych w sklepie App Store dla systemu macOS (począwszy od stycznia 2018 r.).

Ponadto aplikacje 32-bitowe nie będą działać w wersji systemu macOS po high Sierra "bez naruszenia zabezpieczeń".

Aby uzyskać więcej informacji: https://developer.apple.com/news/?id=06282017a

Rozważ zaktualizowanie aplikacji i wszystkich zależności do 64-bitowej.

Aby skompilować aplikację, platforma Xamarin.Mac musi łączyć się z bibliotekami systemowym, z których niektóre zależą od wersji zestawu SDK określonej w komunikacie o błędzie. Ponieważ używasz starszej wersji zestawu SDK, wywołania tych interfejsów API mogą zakończyć się niepowodzeniem w czasie wykonywania.

Zalecanym sposobem rozwiązania tego błędu jest uaktualnienie środowiska Xcode w celu uzyskania wymaganego zestawu SDK. Jeśli masz zainstalowane wiele wersji programu Xcode lub chcesz użyć programu Xcode w lokalizacji innej niż domyślna, upewnij się, że ustawiono poprawną lokalizację środowiska Xcode w preferencjach środowiska IDE.

Alternatywnie włącz program konsolidatora zarządzanego, aby usunąć nieużywane interfejsy API, w tym (w większości przypadków) nowe, które wymagają określonej biblioteki. Nie będzie to jednak działać, jeśli projekt wymaga interfejsów API wprowadzonych w nowszym zestawie SDK niż ten, który zapewnia twój kod Xcode.

Jako ostatnie rozwiązanie należy użyć starszej wersji platformy Xamarin.Mac, która nie wymaga obecności tych nowych zestawów SDK podczas procesu kompilacji.

MM14xx: Zestawy produktów

MM1401: Brak wymaganego zestawu "{0}" w odwołaniach

MM1402: Zestaw "{0}" nie jest zgodny z tym narzędziem

Mm1403: {0} nie można odnaleźć elementu "{1}". Platforma docelowa "{0}" jest bezużyteczna do spakowania aplikacji.

MM1404: Struktura docelowa "{0}" jest nieprawidłowa.

MM1405: useFullXamMacFramework musi zawsze być platformą docelową .NET 4.5, a nie "{0}", która jest nieprawidłowa

MM1406: Struktura docelowa "{0}" jest nieprawidłowa podczas określania wartości docelowej dla platformy Xamarin.Mac 4.5 .NET framwork.

MM1407: niezgodność między odwołaniem Xamarin.Mac "{0}" i wybraną platformą docelową "{1}".

MM15xx: Błędy zbierania zestawów (nie wymagają konsolidatora)

MM1501: Nie można rozpoznać odwołania: {0}

MachO.cs

MM1600: Nie biblioteka dynamiczna Mach-O (nieznany nagłówek "0x{0}")): {1}.

MM1601: Nie biblioteka statyczna (nieznany nagłówek '{0}'): {1}.

MM1602: Nie biblioteka dynamiczna Mach-O (nieznany nagłówek "0x{0}"): {1}.

MM1603: Nieznany format wpisu tłuszczu w pozycji w {1}.{0}

MM1604: Plik typu {0} nie jest plikiem MachO ({1}).

MM2xxx: Konsolidator

MM20xx: Błędy konsolidatora (ogólne)

MM2002: Nie można rozpoznać odwołania: {0}

MM2003: Opcja "{0}" zostanie zignorowana, ponieważ łączenie jest wyłączone

MM2004: Nie można znaleźć pliku definicji dodatkowych konsolidatora "{0}".

MM2005: Nie można przeanalizować definicji z elementu "{0}".

MM2006: Przywoływała biblioteka natywna "{0}", ale nie można jej odnaleźć.

MM2010: Nieznany program HttpMessageHandler {0}. Prawidłowe wartości to HttpClientHandler (wartość domyślna), CFNetworkHandler lub NSUrlSessionHandler

MM2011: Nieznany dostawca TLSProvider ".{0} Prawidłowe wartości to wartości domyślne lub aplety

MM2013: Nie można rozpoznać odwołania do "{0}", do których odwołuje się "{1}". Aplikacja nie będzie zawierać przywoływalego zestawu i może zakończyć się niepowodzeniem w czasie wykonywania.

MM2014: Rozszerzenia Xamarin.Mac nie obsługują łączenia. Żądanie połączenia zostanie zignorowane. ** Ten komunikat jest przestarzały w wersji XM 3.6+ **

MM2016: Nieprawidłowa opcja TlsProvider {0} . Zostanie użyta jedyna prawidłowa wartość {1} .

MM2017: Nie można przetworzyć opisu XML: {0}

MM202x: Przetwarzanie ...optymalizatora powiązań nie powiodło się.

MM2100: interfejs API Xamarin.Mac Classic nie obsługuje łączenia platformy.

MM2103: Błąd podczas przetwarzania zestawu '*': *

Wystąpił nieoczekiwany błąd podczas przetwarzania zestawu.

Zestaw powodujący problem nosi nazwę w komunikacie o błędzie. Aby rozwiązać ten problem, zestaw musi zostać udostępniony w raporcie o błędach wraz z pełnym dziennikiem kompilacji z włączonym szczegółowością (tj. -v -v -v -v w dodatkowych argumentach mtouch).

Zestawy w trybie mieszanym nie mogą być przetwarzane przez konsolidator.

Zobacz /cpp/dotnet/mixed-native-and-managed-assemblies, aby uzyskać więcej informacji na temat zestawów w trybie mieszanym.

MM2106: Nie można zoptymalizować wywołania metody BlockLiteral.SetupBlock[Niebezpieczne] w * przy przesunięć * z powodu *.

Konsolidator zgłasza to ostrzeżenie, gdy nie może zoptymalizować wywołania do BlockLiteral.SetupBlock lub Block.SetupBlockUnsafe.

Komunikat wskaże metodę, która wywołuje BlockLiteral.SetupBlock[Unsafe]metodę , i może również dostarczyć wskazówek, dlaczego nie można zoptymalizować wywołania.

Zgłoś problem wraz z pełnym dziennikiem kompilacji, abyśmy mogli zbadać, co poszło nie tak, i ewentualnie włączyć więcej scenariuszy w przyszłości.

MM2107: Nie można bezpiecznie usunąć dynamiki registrar , ponieważ {reasons}

Konsolidator zgłasza to ostrzeżenie, gdy deweloper żąda usunięcia dynamiki registrar (przechodząc --optimize:remove-dynamic-registrar do mmp), ale konsolidator określa, że nie jest to bezpieczne.

Aby usunąć ostrzeżenie, usuń argument optymalizacji do mmp lub przekaż --nowarn:2107 go, aby go zignorować.

Domyślnie ta opcja zostanie automatycznie włączona zawsze, gdy będzie to możliwe i bezpieczne.

MM2108: "{0}" został pozbawiony architektur z wyjątkiem "{1}" w celu zachowania zgodności z ograniczeniami sklepu App Store. Może to spowodować przerwanie współistnienia podpisów. Rozważ usunięcie biblioteki z lipo lub wyłączenie z --optimize=-trim-architectures");

Sklep App Store odrzuca teraz aplikacje zawierające biblioteki i struktury zawierające warianty 32-bitowe. Biblioteka została pozbawiona nieużywanych architektur podczas kopiowania do końcowego pakietu aplikacji.

Jest to ogólnie bezpieczne i zmniejszy rozmiar pakietu aplikacji jako dodatkową korzyść. Jednak każda podpisana w pakiecie struktura, która jest podpisana, będzie miała swój podpis unieważniony (i zrezygnowała później, jeśli aplikacja jest podpisana).

Rozważ użycie metody lipo , aby trwale usunąć niepotrzebne architektury z biblioteki źródłowej. Jeśli aplikacja nie jest publikowana w sklepie App Store, to usunięcie można wyłączyć, przekazując --optimize=-trim-architectures jako dodatkowe argumenty MMP.

MM2109: Interfejs API Xamarin.Mac Classic nie obsługuje łączenia platformy.

MM3xxx: AOT

MM30xx: błędy AOT (ogólne)

MM3001: Nie można utworzyć AOT zestawu "{0}"

MM3009: Zażądano AOT elementu "{0}", ale nie znaleziono go

MM3010: Zażądano wykluczenia AOT elementu "{0}", ale nie znaleziono go

MM4xxx: generowanie kodu

MM40xx: driver.m

MM4001: Nie można rozszerzyć głównego szablonu na {0}.

MM41xx: registrar

MM4134: Aplikacja używa struktury "{0}", która nie jest zawarta w zestawie SDK systemu MacOS używanym do kompilowania aplikacji (ta struktura została wprowadzona w systemie OSX {2}, podczas kompilowania przy użyciu zestawu SDK systemu MacOS {1} ). Ta konfiguracja nie jest obsługiwana w przypadku statycznych registrar (pass --registrar:d ynamic jako dodatkowy argument mmp w opcji kompilacji dla komputerów Mac projektu do wybrania). Alternatywnie wybierz nowszy zestaw SDK w opcjach kompilacji dla komputerów Mac aplikacji.

MM4173: Nie registrar można obliczyć podpisu bloku dla delegata typu {delegate-type} w metodzie {method} z powodu *.

Jest to ostrzeżenie wskazujące, że registrar nie można wstrzyknąć podpisu blokowego określonej metody do wygenerowanego registrar kodu, ponieważ registrar nie można go obliczyć.

Oznacza to, że podpis bloku musi być obliczany w czasie wykonywania, co jest nieco wolniejsze.

Obecnie istnieją dwa możliwe przyczyny tego ostrzeżenia:

  1. Typ zarządzanego delegata to a System.Delegate lub System.MulticastDelegate. Te typy nie reprezentują określonego podpisu, co oznacza, że registrar nie można obliczyć odpowiedniego podpisu natywnego. W takim przypadku poprawka polega na użyciu określonego typu delegata dla bloku (alternatywnie można zignorować ostrzeżenie, dodając --nowarn:4173 jako dodatkowy argument mmp w opcjach kompilacji dla komputerów Mac projektu).
  2. Nie registrar można odnaleźć Invoke metody delegata. Nie powinno się tak zdarzyć, więc zgłoś problem z projektem testowym, abyśmy mogli go rozwiązać.

MT4174: Nie można zlokalizować bloku, aby delegować metodę konwersji dla parametru metody {method}#{parameter}.

Jest to ostrzeżenie wskazujące, że statyczna registrar nie może odnaleźć metody utworzenia delegata Objective-C dla bloku. Próba zostanie podjęta w czasie wykonywania w celu znalezienia metody, ale prawdopodobnie również zakończy się niepowodzeniem (z wyjątkiem MT8009).

Jedną z możliwych przyczyn tego ostrzeżenia jest ręczne pisanie powiązań dla interfejsu API korzystającego z bloków. Zaleca się użycie projektu powiązania do powiązania Objective-C kodu — w szczególności w przypadku, gdy obejmuje bloki — ponieważ jest to dość skomplikowane, aby można było to zrobić ręcznie.

Jeśli tak nie jest, zgłoś problem z przypadkiem testowym.

MM5xxx: GCC i łańcuch narzędzi

MM51xx: kompilacja

MM5101: Brak kompilatora "{0}". Zainstaluj składnik Xcode "Narzędzia wiersza polecenia".

MM5103: Nie można skompilować. Kod błędu — {0}. Zgłoś raport o usterce z przypadkiem testowym.

MM52xx: łączenie

MM5202: Brak zestawu MDK mono.framework. Zainstaluj zestaw MDK dla wersji mono.framework z witryny https://mono-project.com/Downloads

MM5203: Nie można odnaleźć pliku libxammac.a, prawdopodobnie z powodu uszkodzonej instalacji platformy Xamarin.Mac. Zainstaluj ponownie środowisko Xamarin.Mac.

MM5204: Nieprawidłowa architektura. x86_64 jest obsługiwana tylko w profilach innych niż klasyczne.

MM5205: Nieprawidłowa architektura "{0}". Prawidłowe architektury to i386 i x86_64 (gdy --profile=mobile).

MM5218: Nie można zignorować symbolu dynamicznego {symbol} (--ignore-dynamic-symbol={symbol}), ponieważ nie został wykryty jako symbol dynamiczny.

Zobacz równoważne ostrzeżenie mtouch.

MM53xx: inne narzędzia

MM5301: nie można odnaleźć konfiguracji pkg-config. Zainstaluj platformę Mono.framework z witryny https://mono-project.com/Downloads

MM5305: Brak narzędzia "otool". Zainstaluj składnik "Narzędzia wiersza polecenia" programu Xcode

MM5306: Brak zależności. Zainstaluj składnik "Narzędzia wiersza polecenia" programu Xcode

MM5308: Umowa licencyjna Xcode mogła nie zostać zaakceptowana. Uruchom program Xcode.

MM5309: Łączenie natywne nie powiodło się z kodem błędu 1. Sprawdź dziennik kompilacji, aby uzyskać szczegółowe informacje.

MM5310: install_name_tool nie powiodło się z kodem błędu "{0}". Sprawdź dziennik kompilacji, aby uzyskać szczegółowe informacje.

MM5311: lipo nie powiodło się z kodem błędu "{0}". Sprawdź dziennik kompilacji, aby uzyskać szczegółowe informacje.

MM8xxx: środowisko uruchomieniowe

MM800x: misc

MM8017: Moduł odśmiecający pamięci Boehm nie jest obsługiwany. Zamiast tego użyj narzędzia SGen.

MM8025: Nie można obliczyć odwołania do tokenu dla typu "{type". AssemblyQualifiedName}" z powodu {reasons}

Wskazuje to usterkę na platformie Xamarin.Mac. Zgłoś raport o usterce z przypadkiem testowym.

Potencjalnym obejściem byłoby wyłączenie register-protocols optymalizacji, przekazując --optimize:-register-protocols jako dodatkowy argument mmp w opcjach kompilacji dla komputerów Mac projektu.

MM8026: * nie jest obsługiwany, gdy dynamika registrar została połączona.

Zwykle oznacza to usterkę na platformie Xamarin.Mac, ponieważ dynamika registrar nie powinna być połączona, jeśli jest to konieczne. Zgłoś raport o usterce z przypadkiem testowym.

Można wymusić zachowanie dynamiki registrar konsolidatora przez dodanie --optimize=-remove-dynamic-registrar do dodatkowych argumentów mmp w opcjach kompilacji dla komputerów Mac w projekcie.