Xamarin.forms: ITMS-90809: Veraltete API-Verwendung - Apple akzeptiert keine Übermittlungen von Apps mehr, die UIWebView-APIs verwenden

Erstellt am 30. Aug. 2019  ·  99Kommentare  ·  Quelle: xamarin/Xamarin.Forms

LÖSUNG

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/webview?tabs=windows#uiwebview -deprecation-and-app-store-Ablehnung-itms-90809


Sehr geehrter Entwickler,

Wir haben ein oder mehrere Probleme mit einer kürzlich für Ihre App bereitgestellten Version "xxxx" 1.0.11 (1.0.11) festgestellt. Ihre Lieferung war erfolgreich, aber Sie möchten möglicherweise die folgenden Probleme bei Ihrer nächsten Lieferung beheben:

ITMS-90809: Veraltete API-Nutzung - Apple akzeptiert keine Einsendungen von Apps mehr, die UIWebView-APIs verwenden. Weitere Informationen finden Sie unter https://developer.apple.com/documentation/uikit/uiwebview .

Nachdem Sie die Probleme behoben haben, können Sie mit Xcode oder Application Loader eine neue Binärdatei in App Store Connect hochladen.

Freundliche Grüße,

Das App Store Team

Aber ich bin sicher, dass ich UIWebView durch WKWebView (WKWebViewRenderer) ersetzt habe.

in-progress iOS 🍎 bug

Hilfreichster Kommentar

Hallo @ Mikilll94 , wir arbeiten aktiv daran, eine vollständige Lösung wird jedoch in Kürze nicht verfügbar sein. Mit einer "vollständigen Lösung" meine ich, dass die Warnung nicht mehr von Apple kommt, wenn Sie eine Xamarin.Forms-App an den Store senden.

Um die Warnmeldung zu stoppen, müssen wir das aktuelle WebViewRenderer vollständig aus der Quelle entfernen. Da dieser Renderer derzeit die Standardeinstellung ist und seit Ewigkeiten in der Quelle enthalten ist, ist dies eine wichtige Änderung. Mit der mit diesem Problem verbundenen PR stellen wir den Standard-Renderer auf WKWebViewRenderer wodurch die neuen WKWebView effektiv verwendet werden. Endbenutzer von Xamarin.Forms sollten nichts über diese Änderung bemerken. Mit diesem Schalter markieren wir auch das ursprüngliche WebViewRenderer als veraltet, um den Xamarin.Forms-Benutzern die Möglichkeit zu geben, die erforderlichen Änderungen an ihrem Code vorzunehmen. Zum Beispiel, wenn sie benutzerdefinierte Renderer haben, die auf WebViewRenderer .

Da die WebViewRenderer jedoch immer noch in der Quelle verknüpft sind, wird dies beim Scannen Ihrer App immer noch von Apple aufgegriffen. In einer späteren Version von Xamarin.Forms, die die früheste Version 4.5 ist, werden wir die WebViewRenderer vollständig löschen und damit sollten die Warnmeldungen von Apple aufhören.

Trotzdem gibt es zwei Dinge zum Mitnehmen:

  1. Die Nachricht von Apple ist vorerst nur eine Warnung. Nichts hindert Sie daran, neue Versionen einzureichen, und sie sollten problemlos in den App Store aufgenommen werden. Dies wird wahrscheinlich bis iOS 14 so bleiben, was uns (mindestens) ein Jahr gibt.
  2. Auch hier ist das Löschen von WebViewRenderer aus der Quelle eine wichtige Änderung, die wir lieber nicht vornehmen würden, aber wir haben derzeit keine Wahl. Daher müssen wir uns etwas Zeit nehmen, um Benutzer davor zu warnen und schrittweise zuerst zur neuen Implementierung zu wechseln und erst dann diese Klasse aus dem Quellcode zu entfernen. Dies ist ein langwieriger Prozess, der jedoch lange vor der Veröffentlichung von iOS 14 erfolgen sollte.

Ich hoffe, dies geht auf alle Ihre Bedenken ein. Wenn nicht, lassen Sie es mich bitte wissen. Gerne beantworte ich Ihre Fragen dazu.

Vielen Dank für Ihr Verständnis und Ihre Geduld!

Alle 99 Kommentare

Ich bekomme auch dieses Problem, wir verwenden: Xamarin.Forms 3.6.0.539721

Jede Version von Forms erhält dies, da WebViewRenderer in iOS UIWebView implementiert und die Datei auch dann erhalten bleibt, wenn Sie den WkWebViewRenderer umschalten. Ich weiß nicht, ob es eine Möglichkeit gibt, diese Datei während des Builds zu verknüpfen.

@ swansca79 - davor hatte ich ziemlich viel Angst. Ich hoffe, wir können es verknüpfen, wie Sie sagen.

Was ist die Frist von Apple für diese Anforderung? Ich konnte keine finden ...

Ich vermute, dies betrifft alle Apps, unabhängig davon, ob es sich um neue Einreichungen oder Updates handelt. Wenn dies der Fall ist, was bringt es dann, den alten Renderer zu verknüpfen? Es sollte aus dem Quellcode entfernt werden. Außerdem müssen wir herausfinden, ob dies eine iOS 13-Anforderung ist oder nicht ...

Selbes Problem hier. Ich verwende Xamarin.Forms 4.2.0.709249

Ich habe die folgende Zeile in die AssemblyInfo.cs des iOS-Projekts eingefügt, aber das ändert nichts:

[assembly: ExportRenderer(typeof(WebView), typeof(Xamarin.Forms.Platform.iOS.WkWebViewRenderer))]

Ich würde gerne Apples Frist für die Einreichung von Apps erfahren.

Selbes Problem hier.
Kennt jemand die Frist von Apple für diese Anforderung? Oder wenn Xamarin an diesem Update arbeitet

UIWebView ist noch in den iOS13-Betas, also wahrscheinlich bis iOS14.

Wenn Sie sich den Renderer-Ordner Xamarin.Forms.iOS ansehen, werden Sie feststellen, dass WKWebViewRender vor 2 Monaten hinzugefügt wurde. Ich gehe davon aus, dass Sie Ihre eigene WebView erstellen können, die von diesem Renderer erbt (wenn Sie nicht die letzte Version von XF in Ihrem Projekt haben, können Sie den Code kopieren / einfügen), um dieses Problem mit Ihren WebViews zu beheben

WkWebViewRenderer.cs

Leute, ich finde etwas Seltsames, ich habe die App-Bundle-ID geändert und sie erneut an den App Store gesendet, und ich habe die Warn-E-Mail von Apple nicht erhalten.
Und meine Situation: Vor drei Tagen habe ich keine Warn-E-Mail von Apple erhalten, nachdem ich ipa an testflight gesendet habe, und dann erhalte ich die E-Mail, nachdem ich einige Änderungen vorgenommen habe, die keine Beziehung zur Webansicht haben. Dann versuche ich zu finden warum mit folgenden Möglichkeiten:
1.Versuchen Sie, UIWebViewRenderer durch WKWebViewRenderer zu ersetzen.
2. WebView entfernen;
3.Entfernen Sie die Nuget-Bibliothek eines Drittanbieters (die ich kürzlich hinzugefügt habe).
Aber sie sind über die Warnung nutzlos (ich erhalte immer noch die Warn-E-Mail).
Ich weiß nicht, wie die IPA von Apple überprüft wurde. Gibt es eine Möglichkeit, dass sie einige Fehler machen?

Mir ist aufgefallen, dass diese Situation in letzter Zeit mit Flattern und reaktionsbedingten Problemen auftritt. (Die Entwickler begegnen den Problemen ebenfalls.)

@ Carl-Wen das passiert auch bei Ionic Apps

Ich habe heute die gleiche Nachricht vom Apple Store Connect erhalten. Seltsam ist, dass meine Anwendung keine Webansicht enthält. Ich habe auch versucht, die Xamarin-Plugins zu überprüfen, um festzustellen, ob eines von ihnen verwendet wird, aber es scheint, dass keines von ihnen UIWebView verwendet (allerdings nicht 100% sicher, da es auch Abhängigkeiten von Abhängigkeiten gibt).
Weiß jemand, wie man die UIWebView-Verwendung in der Anwendung identifiziert?

Das gleiche passiert mir. Zum ersten Mal beim Versuch, eine App einzureichen

Ich habe heute die gleiche Warnung von iTunesConnect erhalten

Ich habe vor einigen Tagen auch den gleichen Fehler erhalten. Gibt es eine Problemumgehung?

Bitte überprüfen Sie meine Antwort hier oben. Ich habe ein Projekt auf Xamarin.Forms 3.6.x und es verwendet einige Webansichten. Daher habe ich einen benutzerdefinierten Renderer für WebView nur für iOS erstellt und das Erbe von UIWebViewRenderer in WKWebViewRenderer geändert

das gleiche Problem

@FabriBertani Könnten Sie bitte Ihren benutzerdefinierten

Ich habe das gleiche Problem, aber meine App verwendet KEINE Webansichten. Ich gehe davon aus, dass Apple die Verwendung in der Xamarin.iOS-Bibliothek erkennt.

Haben Sie Lösungen oder Problemumgehungen für dieses Problem? Auch passiert, als wir unsere App hochgeladen haben. Wir verwenden auch keine WebViews und es scheint, dass @dhewitson Recht hat, dass dies an der UIWebView in der Xamarin-Bibliothek liegt.

Angenommen, Sie haben kein Paket, das UIWebView verwendet, das Sie nicht steuern können, sollte dies ausreichen. Verwenden Sie dann einfach Ihren benutzerdefinierten Rendrer anstelle von normalem XF WebView

namespace YourAppNameSpace
{
    public class CustomWebView : WebView
    {
    }
}
[assembly: ExportRenderer(typeof(CustomWebView), typeof(CustomWebViewRenderer))]
namespace YourAppNameSpace.iOS
{
    public class CustomWebViewRenderer : WkWebViewRenderer
    {
    }
}

Gleiches Problem, hat jemand ein Update dazu?

Hallo allerseits! Vielen Dank für Ihre Berichterstattung und Ihre Recherche.

Wir verfolgen dies und ein Renderer für WkWebView ist bereits für eine Weile vorhanden. Ich habe eine PR weiterentwickelt, die diesen Renderer zum Standard macht und die UIWebView eins

Ich erwarte vom Rest des Teams einige Bewertungen und Rückmeldungen zu meiner PR, aber hoffentlich sollte dies bald behoben sein.

Hallo @jfversluis, wäre es möglich, dass das Update auf ältere Versionen von XamarinForms angewendet werden kann?
Ich verwende 3.4.0.1009999 und es wäre sehr aufwändig, auf die neueste Version von Xamarin.Forms zu aktualisieren.

@ngoquoc wir könnten dies auf frühere Versionen

@jfversluis danke für die blitzschnelle Antwort: D.
Ich stimme absolut zu, dass es sich lohnt, auf eine neuere Version zu aktualisieren, aber die Situation ist, dass es wirklich nahe an unserer geplanten Veröffentlichungsfrist liegt. Und wir haben viele ältere Abhängigkeiten (die nur bis zu XF 3.x unterstützen) sowie die Verwendung der neuesten Änderungen der neueren Version.

@ngoquoc Kein Problem! Ich verstehe vollkommen! Für Ihre nächste Version halte ich es jedoch für ratsam, nach einem Upgrade zu suchen. Möglicherweise gibt es weitere APIs, die veraltet oder bald veraltet sein werden. Wenn wir etwas tun können, um Ihr Upgrade-Erlebnis zu verbessern, wenden Sie sich bitte an uns!

Hoffentlich können wir das Update dieses Problems auf 3.4 anwenden. Ein Upgrade auf 4.x ist absolut in unserem Plan und wir werden das Team erreichen, wenn wir Hilfe benötigen (hoffentlich nicht: D). Schätzen Sie wirklich Ihre Unterstützung!

@ngoquoc Auf jeden Fall, wie oben beschrieben, während Sie Ihre IPA hochladen können, und in iOS13 ist diese Klasse immer noch da.
Das wird also einige Zeit funktionieren

@KSemenenko meinten Sie, dass "verwarnte" App auch im Apple Store veröffentlicht werden kann?
Wenn das der Fall ist, können wir uns beruhigen und den Wechsel zu WKWebView um einige Zeit verschieben: D.
Meine einzige Sorge ist, ob Apple eine solche Anwendung mit Warnungen genehmigt.
Ich habe die veröffentlichten Informationen zur Verwerfung hier gefunden, aber es ist keine offizielle Frist / Apple Store-Überprüfungsrichtlinie angegeben: https://developer.apple.com/documentation/uikit/uiwebview

@ngoquoc Historisch gesehen werden diese Apps

Vielen Dank. Ich werde versuchen, die App jetzt einzureichen und mich mit dem Ergebnis bei euch melden, vielleicht in ein paar Tagen, nachdem Apple sie überprüft hat :)

@ngoquoc gestern konnte ich ipa in den AppStore hochladen.

Kopiert von
https://github.com/xamarin/Xamarin.Forms/pull/7367#issuecomment -527558598

Mein aktueller Gedanke wäre herauszufinden, warum diese Renderer nicht verlinkt werden (woran ich ein bisschen gearbeitet habe). Wenn RenderWith nicht dazu führt, dass Renderer verlinkt werden, denke ich nicht, und die ganze Forwarder-Sache erfüllt irgendeinen Zweck (richtig?)

In diesem Fall könnten wir den Standardtyp wechseln (wie in dieser PR) und dann den WebViewRenderer belassen. Wenn Benutzer zu WebViewRenderer zurückkehren müssen, können sie den Export dafür hinzufügen, aber wenn Benutzer ihn nicht verwenden, wird er hoffentlich verknüpft aus.

Ein Grund, den ich gefunden habe, ist, dass unsere Plattformbaugruppen beide die haben
PreserveAttribute wird auf Assembly-Ebene angegeben, wodurch die Assembly gezwungen werden soll, alle Typen beizubehalten

Ich habe getestet, indem ich unserem Plattformprojekt eine Dummy-Klasse hinzugefügt habe, und mit dem PreserveAttribute bleibt die Klasse erhalten, aber ohne sie verschwindet das

Die Renderer bleiben immer noch alle da :-) aber es ist ein kleiner Schritt

Ich habe einen kurzen Test mit der CheckboxRendererDesigner-Klasse durchgeführt (weil sie nirgendwo wirklich verwendet wird).

Und wenn ich diese beiden Codezeilen entferne
https://github.com/xamarin/Xamarin.Forms/blob/d56942c5bee0a7c56255febc8bbcc6bc33d5e1cb/Xamarin.Forms.Platform.Android/AppCompat/FormsAppCompatActivity.cs#L128

https://github.com/xamarin/Xamarin.Forms/blob/bcf1d857f70c2d521fdbf59bd73445c7e77fe1fc/Stubs/Xamarin.Forms.Platform.cs#L112

Dann wird es verlinkt.

Es scheint der beabsichtigte Zweck von RenderWith für diese Weiterleitungsprojekte zu sein
https://github.com/xamarin/Xamarin.Forms/blob/bcf1d857f70c2d521fdbf59bd73445c7e77fe1fc/Stubs/Xamarin.Forms.Platform.cs#L112

Bietet nicht die schwach genug Verbindung, auf die gehofft wurde

Es sieht so aus, als ob dies geschieht, weil das Kontrollkästchen (Formularelement) selbst nicht verknüpft wird, wodurch das RenderWith- Attribut den Renderer in der

Wenn ich den CheckboxRendererDesigner so ändere , dass eine nicht vorhandene Klasse zugeordnet wird
`` `C #
[RenderWith (typeof (CheckBoxRenderer))]
interne Klasse _CheckBoxRenderer {}

[RenderWith(typeof(CheckBoxDesignerRenderer))]
internal class _CheckBoxRendererIsMyNameo { }

`` `

Dann wird es verlinkt ...

Sie müssen also herausfinden, wie Sie die CheckBox verknüpfen können

Haben andere gesehen, wie die Warnung dadurch verschwunden ist?

https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment -527294907

@ PureWeen

Hat bei mir nicht funktioniert, ich habe sowohl den Renderer als auch den Eintrag in der Assembly-Datei und erhalte trotzdem die Warnung.

Meinten Sie, dass das Hinzufügen von WKWebViewRenderer für diese Warn-E-Mail nicht ausreicht?

@ PureWeen

Hat bei mir nicht funktioniert, ich habe sowohl den Renderer als auch den Eintrag in der Assembly-Datei und erhalte trotzdem die Warnung.

In diesem Fall haben Sie vielleicht ein anderes Paket, das UIWebView verwendet. Ich verwende nur diese Problemumgehung und erhalte keine Warnung vom App Store :)

Hallo @ngoquoc, hast du schon Glück mit dem Überprüfungsprozess?

Ich möchte nur wissen, ob unsere App-Frist eingehalten wird, wenn ich sie unabhängig von der "Warnung" zur Überprüfung einreiche.

Ich denke, wir müssen wissen, wann Apple diese Gründe für die Ablehnung einer IPA-Datei hält. Ich fürchte, sie werden dies nicht öffentlich bekannt geben.

Heute habe ich einen Brief erhalten, dass ich meine App Apple Review bestanden habe
also fürs Erste funktioniert es :)

App Review funktioniert wie gewohnt. Meine neue App wurde gerade normal veröffentlicht. Vielleicht nur eine Warnung für die zukünftige Veröffentlichung.

Normalerweise sind Warnungen nur Warnungen und geben Ihnen viel Zeit. Bei Google geben sie Ihnen ca. 2 Jahre. Ich gehe hier davon aus, dass die Warnung darin besteht, Ihnen mitzuteilen, dass sie es von iOS 14 entfernen werden (meine Vermutung) und dass sie wirklich möchten, dass Sie es nicht mehr verwenden. Wenn Sie den Schalter umgelegt haben oder standardmäßig eingeschaltet sind, würden Sie ihn sowieso nicht verwenden. Es sei denn, sie betätigen den Schalter und machen einen Fehler, was ich nicht glaube, weil einige Leute noch ältere Geräte unterstützen müssen.

OK, also hier ist, was ich getan habe, um zu überprüfen, was los ist.

Erstellt eine Dummy-App, die ich mit dem neuesten stabilen Xamarin.Forms-Paket und der App, die nur ein WebView zeigt, auf Apple hochgeladen habe. Kurz nachdem ich es hochgeladen hatte, bekam ich diese Warnung. Um zu überprüfen, ob die Warnung jedes Mal erlischt, und um zu überprüfen, ob das Problem behoben ist, habe ich eine weitere Binärdatei ohne Änderungen neben der Versionsnummer erstellt. Die Warnmeldung kam erneut. Das bestätigt also: Wenn Sie die Warnung nicht mehr erhalten, ist das Problem anscheinend behoben.

Dann habe ich einen benutzerdefinierten Renderer mit dem genauen Code implementiert , den hier bereitgestellt

Ich nahm dann diesen Zweig und löschte einfach den WebRenderer und entfernte effektiv alle Verweise auf die UIWebView. Dies hatte den gewünschten Effekt. Apple hat mir die Warnung jetzt nicht mehr gesendet.

All dies scheint darauf hinzudeuten, dass Apple es erkennt und die App letztendlich nicht mehr akzeptiert, solange wir in unserem Code auf UIWebView verweisen (lesen Sie: solange der UIWebViewRenderer noch vorhanden ist). Um maximale Abwärtskompatibilität zu erzielen, müssen wir untersuchen, warum der Linker den WebViewRenderer nicht entfernt, wenn er nicht mehr verwendet wird. Wenn wir das beheben, macht meine PR Sinn und sollte dieses Problem ein für alle Mal beheben.

Wie James (und andere) bereits erwähnt haben, handelt es sich vorerst nur um eine Warnung. Selbst wenn Sie die Nachricht erhalten, gibt es an dieser Stelle keinen Grund zur Sorge und es wird funktionieren. Aber natürlich müssen wir darauf vorbereitet sein, wenn Apple beschließt, die alte UIWebView-API nicht mehr zuzulassen.

Nach Rücksprache mit dem iOS-Team sieht es so aus, als würde alles, was von NSObject erbt, niemals verlinkt werden. Das Versprechen von RenderWith, Renderer zu verlinken, ist mir also ziemlich sicher, dass es unter iOS nie funktioniert hat

Da wir nur den Renderer komplett löschen und alle kaputt machen müssen

Oder machen Sie sich mit einem separaten Nuget und einer Art Weiterleitung schlau

Ich habe auch das gleiche Problem. Gibt es hierzu Neuigkeiten?

Hallo @ Mikilll94 , wir arbeiten aktiv daran, eine vollständige Lösung wird jedoch in Kürze nicht verfügbar sein. Mit einer "vollständigen Lösung" meine ich, dass die Warnung nicht mehr von Apple kommt, wenn Sie eine Xamarin.Forms-App an den Store senden.

Um die Warnmeldung zu stoppen, müssen wir das aktuelle WebViewRenderer vollständig aus der Quelle entfernen. Da dieser Renderer derzeit die Standardeinstellung ist und seit Ewigkeiten in der Quelle enthalten ist, ist dies eine wichtige Änderung. Mit der mit diesem Problem verbundenen PR stellen wir den Standard-Renderer auf WKWebViewRenderer wodurch die neuen WKWebView effektiv verwendet werden. Endbenutzer von Xamarin.Forms sollten nichts über diese Änderung bemerken. Mit diesem Schalter markieren wir auch das ursprüngliche WebViewRenderer als veraltet, um den Xamarin.Forms-Benutzern die Möglichkeit zu geben, die erforderlichen Änderungen an ihrem Code vorzunehmen. Zum Beispiel, wenn sie benutzerdefinierte Renderer haben, die auf WebViewRenderer .

Da die WebViewRenderer jedoch immer noch in der Quelle verknüpft sind, wird dies beim Scannen Ihrer App immer noch von Apple aufgegriffen. In einer späteren Version von Xamarin.Forms, die die früheste Version 4.5 ist, werden wir die WebViewRenderer vollständig löschen und damit sollten die Warnmeldungen von Apple aufhören.

Trotzdem gibt es zwei Dinge zum Mitnehmen:

  1. Die Nachricht von Apple ist vorerst nur eine Warnung. Nichts hindert Sie daran, neue Versionen einzureichen, und sie sollten problemlos in den App Store aufgenommen werden. Dies wird wahrscheinlich bis iOS 14 so bleiben, was uns (mindestens) ein Jahr gibt.
  2. Auch hier ist das Löschen von WebViewRenderer aus der Quelle eine wichtige Änderung, die wir lieber nicht vornehmen würden, aber wir haben derzeit keine Wahl. Daher müssen wir uns etwas Zeit nehmen, um Benutzer davor zu warnen und schrittweise zuerst zur neuen Implementierung zu wechseln und erst dann diese Klasse aus dem Quellcode zu entfernen. Dies ist ein langwieriger Prozess, der jedoch lange vor der Veröffentlichung von iOS 14 erfolgen sollte.

Ich hoffe, dies geht auf alle Ihre Bedenken ein. Wenn nicht, lassen Sie es mich bitte wissen. Gerne beantworte ich Ihre Fragen dazu.

Vielen Dank für Ihr Verständnis und Ihre Geduld!

@ jfversluis
Danke für diese geniale Antwort :)

@jfversluis Danke für deine Antwort
Können Sie mir sagen, wie ich den WebViewRenderer aus dem Quellcode löschen kann?

@NehalOsama Der einzige Weg, dies zu tun, besteht darin, dieses XamForms-Repository zu klonen, die Datei WebViewRenderer.cs aus dem Platforms.iOS-Projekt zu löschen, alle Verweise so zu ändern, dass sie auf WKWebViewRenderer verweisen, und Ihre eigenen DLLs und zu erstellen Verwenden Sie das in Ihrer App.

Ich kann es nur wärmstens empfehlen . Dies bedeutet, dass Sie nicht auf Versionen aktualisieren können, die wir veröffentlichen, sodass Sie niemals Bugfixes oder ähnliches erhalten, ohne die benutzerdefinierte Änderung zu verlieren. Oder Sie müssen diesen Vorgang bei jedem Upgrade erneut wiederholen.

Wenn es dir nichts ausmacht, wenn ich frage; warum nicht warten Die Nachricht von Apple ist nur eine Warnung, und wir werden dies gut machen, bevor Apple tatsächlich anfängt, Apps abzulehnen. An dieser Stelle gibt es keinen Grund zur Sorge.

@ jfversluis
Vielen Dank. Unabhängig vom Entfernen der Referenzen und der Warnung besteht der Grund darin, dass unser Kunde darauf besteht, dass wir mithilfe des Webkits in eine andere Anwendung integrieren
Ich habe als https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment -527294907,
Aber wie kann ich sicherstellen, dass mein benutzerdefinierter Renderer WKWebViewRenderer und nicht UIWebView ist ?!
Gibt es einen offensichtlichen Unterschied zwischen ihnen oder irgendetwas, das dies dem Kunden beweisen kann ?!

Es ist sozusagen der Punkt, dass Sie keinen Unterschied zwischen ihnen sehen sollten, wenn wir unsere Arbeit richtig gemacht haben 😉

Ich bin mir nicht sicher, wie viele Beweise sie brauchen würden. Sie können sich mit Inspektoren oder UITest-Mitarbeitern austauschen, um die tatsächlichen Typen zu ermitteln, die erzeugt werden. Am einfachsten ist es jedoch, einfach einen Haltepunkt in Ihrem benutzerdefinierten Renderer festzulegen, den Sie erstellt haben, und zu prüfen, ob dieser getroffen wird. In diesem Fall wird WKWebView verwendet. Darüber hinaus können Sie in Ihrem benutzerdefinierten Renderer einen kleinen Mechanismus implementieren, der eine bestimmte Seite von der nativen Plattform lädt. Sie können erneut einen Haltepunkt eingeben und überprüfen, ob anstelle von UIWebView WKWebView verwendet wird UIWebView .

Wenn Sie alle regulären WebView Steuerelemente auf WKWebViewRenderer umstellen möchten, ohne einen benutzerdefinierten Renderer erstellen zu müssen und einfach WebView anstelle einer Vererbung verwenden möchten, können Sie diese Zeile zum hinzufügen AssemblyInfo.cs in Ihrem iOS-Projekt:

[assembly: ExportRenderer(typeof(Xamarin.Forms.WebView), typeof(Xamarin.Forms.Platform.iOS.WKWebViewRenderer))] .

Die Binärdatei meiner App wurde heute aus diesem Grund abgelehnt. Ich benutze bereits die WkWebViewRenderer

Dear Developer,
We identified one or more issues with a recent delivery for your app, [REDACTED]. 
Your delivery was successful, but you may wish to correct the following issues in 
your next delivery:ITMS-90809: Deprecated API Usage - Apple will stop accepting 
submissions of apps that use UIWebView APIs.
See https://developer.apple.com/documentation/uikit/uiwebview for more information.

After you’ve corrected the issues, you can use Xcode or Application Loader to upload
a new binary to App Store Connect.
Best regards,
The App Store Team

Trotz dieser passiven Sprache ("wird aufhören zu akzeptieren") wurde meine Binärdatei nicht verarbeitet und für die Veröffentlichung verfügbar gemacht.

Dies ist jetzt kritisch. Ich kann keine neuen Versionen der App meines Kunden veröffentlichen.

Was ist die ETA für dieses Update?

Hallo @joehanna, danke für die Berichterstattung. Bist du dir absolut sicher? Die Nachricht selbst besagt, dass die Zustellung erfolgreich war und es keinen Grund gibt anzunehmen, dass sich etwas von dem unterscheidet, als dieses Problem zum ersten Mal geöffnet wurde. Es dauert einige Zeit, bis Apple die gesamte Binärdatei verarbeitet hat, nachdem eine solche Nachricht gesendet wurde.

Ich sehe, dass Ihr Kommentar von vor ungefähr einer Stunde stammt und jetzt im Entwicklerportal angezeigt werden sollte. Könnten Sie überprüfen, ob es wirklich nicht durchgegangen ist?

Ebenfalls

Meine Binärdatei wurde nicht verarbeitet und für die Veröffentlichung zur Verfügung gestellt.

Wie haben Sie das überprüft? Wenn Sie zur App-Definition und dann zur Aktivität unter Alle Builds gehen, sehen Sie sie nicht?

image

Vielen Dank für Ihre schnelle Antwort @jfversluis. Ich habe weder die Bestätigungs-E-Mail erhalten, noch erscheint sie in den verfügbaren Builds. Ich denke, es könnte einen Verarbeitungsstau geben? Nach meiner Erfahrung wird die Binärdatei in weniger als 20 Minuten verarbeitet. Ich werde es in Kürze noch einmal überprüfen und berichten.

Ah, das ist ein guter Punkt, den Sie dort ansprechen. Es könnte einige zusätzliche Aktivitäten mit iOS 13 geben und Leute, die viele Builds dafür einreichen. Ich habe gerade eine neue Version der Dummy-App erstellt, die Sie oben sehen können, und sie auch eingereicht, um zu überprüfen, was passiert.

Ich werde dich aktualisieren, sobald ich etwas sehe.

Danke auf jeden Fall für den Bericht!

@joehanna Ich habe zuerst die Warnung bekommen und innerhalb von Minuten habe ich das zweite Bild bekommen. Ich bin mir also nicht sicher, was mit Ihrem Build los ist, aber es scheint nicht mit der Verwendung von UIWebView zu stehen

image

image

Es kam endlich durch. Entschuldigung für das Drama. Nie zuvor hatte es so lange gedauert. Vielen Dank für die Weiterverfolgung.

Screen Shot 2019-09-23 at 1 54 55 PM

SDK_Bug

Das Problem ist, dass der Compiler keine unerwünschten Klassendateien oder Bibliotheken entfernt.
Xamarin-Entwicklungsteams müssen auf die neuesten Apple-Entwicklungsrichtlinien verweisen.

@jfversluis Wir haben das gleiche Problem mit Xamarin.iOS-Projekten. Während sich dieser Thread unter Xamarin.Forms befindet, ist die Grundursache dieselbe? Wird das Update sowohl Xamarin.iOS als auch Xamarin.Forms ansprechen?

Dankeschön!
CompaNova LLC

@dmitrymal gibt es einige Ursachen

Xamarin.iOS wird ihre Ursache lösen und dann werden wir darauf aufbauen, um unsere zu lösen

Wir arbeiten an einigen Lösungen und werden dieses Problem aktualisieren, sobald wir Fortschritte erzielen

Wie kommt es, dass dieser Thread immer noch mit s / unbestified markiert ist?

Nein, es ist nicht @taublast 🤡

Obwohl ich zu schätzen weiß, dass dieses Update noch eine Weile dauert und derzeit nicht dringend ist, wird es nach Abschluss auf frühere XF-Versionen zurückportiert? Wir haben eine große Suite von Apps in 3.4 integriert und sind aufgrund verschiedener Abhängigkeitsprobleme beim Versuch, auf XF 4.0 oder höher zu aktualisieren, immer fehlgeschlagen.

@ 1888games Ich halte das für höchst unwahrscheinlich, auch abhängig davon, wie die endgültige Korrektur

https://github.com/xamarin/Xamarin.Forms/pull/7367 wurde zusammengeführt, aber es ist nur ein Teil des Puzzles. Erwarten Sie also nicht, dass die Warnung verschwindet

Es werden weiterhin Linker-Korrekturen im Xamarin.Forms SDK und Xamarin.IOS SDK erforderlich sein

Welche Version von XamarinForms hat dies behoben?

@ s-bhavin-shah, wir müssen mehrere Stufen und Schritte durchlaufen, um dies zu beheben und dies endgültig zu beseitigen. Daher ist dies in einer bestimmten Xamarin.Forms-Version derzeit nicht behoben. Ich möchte nur wiederholen, dass es an dieser Stelle keinen Grund zur Besorgnis gibt. Die Nachricht von Apple ist vorerst nur eine Warnung und wird für eine gute Zeit eine Warnung sein.

Wenn die Warnung lautet, dass Apple Apps aus diesem Grund ablehnt, werden wir sicherstellen, dass wir bereit sind. Wir werden Sie in dieser Ausgabe auf dem Laufenden halten. Was jetzt passiert ist, ist, dass wir einen Weg gefunden haben, den Linker dazu zu bringen, Xamarin-Objekte, die nicht verwendet werden, tatsächlich zu entfernen. Außerdem wurde meine PR zusammengeführt, wodurch WKWebViewRenderer zum Standard wird.

Wenn dies geschehen ist, besteht der letzte Schritt im Wesentlichen darin, die "iOS Linking" -Lösung freizugeben. In diesem Fall sollte WKWebViewRenderer die Standardeinstellung sein und WebViewRenderer nicht mehr in Ihrem Code verwendet werden. Dies sollte dazu führen, dass die resultierende Binärdatei, die an Apple gesendet wird, gelöscht wird. Davon abgesehen; Die Veröffentlichung der iOS-Verknüpfungslösung ist leichter gesagt als getan und wird einige Zeit in Anspruch nehmen.

Der Vorteil hier ist, dass wir wahrscheinlich nicht mit der vollständigen Änderungslösung arbeiten müssen, aber wir können alle schrittweise auf diese Lösung umstellen.

Hoffe, dies wird alle Ihre Fragen zu diesem Zeitpunkt beantworten. Wenn nicht, lassen Sie es mich bitte wissen!

Wenn Sie UIWebView ablehnen und durch WkWebView ersetzen, sollten Sie dieses Problem berücksichtigen
https://github.com/xamarin/Xamarin.Forms/issues/8028

Sie können die Apps von Personen beschädigen, wenn Sie UIWebView nur durch WkWebView ersetzen

@ Mikilll94 Während der Punkt gültig ist, ist die einfache Tatsache, dass Apple anfängt, Binärdateien abzulehnen, die noch UIWebView verwenden. Selbst wenn Xamarin nichts unternommen hätte, wäre dies ohnehin eine bahnbrechende Änderung, da Apple (wahrscheinlich in den nächsten 9 Monaten) nicht zulässt, dass Sie Ihre App aktualisieren, ohne diese Änderung trotzdem vorzunehmen.

@ cabal95
Korrekt.

Aber ich wollte zeigen, dass es ein Problem mit WkWebView gibt, das sehr wichtig ist und viele Entwickler betrifft, und im Moment gibt es keine Problemumgehung dafür.

Gleicher Fehler ! Irgendeine perfekte Arbeit herum?

Screen Shot 2019-10-25 at 7 18 59 AM

Hey @samirgcofficial, danke, dass du deine Ergebnisse gemeldet hast. Haben Sie den Kommentar gesehen, auf den wir uns ganz oben beziehen: https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment -542363338?

Das sollte den aktuellen Status ziemlich genau erklären :)

Zusammenfassung: Derzeit gibt es keine Problemumgehung oder Lösung. Wir arbeiten daran. Diese Nachricht von Apple ist jedoch nur eine Warnung und Sie sollten in der Lage sein, Ihre Apps ohne Probleme einzureichen, nur diese Warnmeldung.

Wenn Sie Fragen haben, lassen Sie es mich bitte wissen!

@jfversluis @samirgcofficial
Nach meiner Erfahrung akzeptiert Apple keine App mehr, die UIWebView in ihrer Binärdatei anzeigt. Wir können unsere Xamarin-Apps nicht mehr an den App Store senden. Es handelt sich also nicht nur um eine Warnmeldung, sondern auch um ein sehr wichtiges Thema.
Wenn Sie andererseits eine Lösung zum Veröffentlichen unserer Apps haben, teilen Sie uns bitte mit, wie?

@JawadJaber Ja, es ist ein ernstes Problem! Ich kann meine App im App Store nicht für Testflüge extern testen. Interne Tests der App sind jedoch möglich, und diese WebView wirkt sich niemals auf interne Tests aus.
Das Szenario bestand darin, einen externen Link und eine Freigabe zu generieren, was in Test Flight nicht möglich ist. Irgendeine Lösung ?

@JawadJaber Wenn Sie eine andere Nachricht von Apple erhalten, die besagt, dass Ihre Binärdatei abgelehnt wurde, anstatt nur zu warnen, posten Sie bitte einen Screenshot oder etwas anderes, um weitere Details zu erhalten. Ich habe am Freitag erfolgreich eine Binärdatei an Apple gesendet, ohne dass ein anderes Problem als die Warn-E-Mail aufgetreten ist.

Ich reiche nur eine Binärdatei ein und habe nur eine Warn-E-Mail erhalten

@JawadJaber @samirgcofficial Könnten Sie mir bitte sagen, warum Sie glauben, dass Ihre Binärdatei aus diesem Grund abgelehnt wird? Wir haben keinen Grund zu der Annahme, dass etwas anderes als dies immer noch eine Warnung ist. Viele Leute bestätigen dies und der Warnungstext in der E-Mail-Nachricht hat sich seit der Erstellung dieses Problems nicht geändert.

Wir sind uns einig, dass dies ein sehr wichtiges Thema ist. Deshalb arbeiten wir hart an einer Lösung und sind so klar und transparent, wie wir es zu diesem Zeitpunkt sein könnten.

Früher in diesem Thread gab es eine andere Person, die dachte, seine Binärdatei wurde abgelehnt, aber die Verarbeitung dauerte nur etwas länger. Könnte es sein, dass dies auch bei Ihnen der Fall ist?

Ok, ich gebe zu, dass es jetzt mit Apple richtig funktioniert.
Obwohl es vor 3 Wochen abgelehnt wurde und ich das App Store-Support-Team kontaktierte und sie dasselbe sagten (ihre Richtlinien).
Aber jetzt funktioniert es. Ich denke, Apple hat gerade seine Richtlinien für diesen Fall geändert. Vielen Dank an @jfversluis , @ martijn00 @ cabal95

Ok, ich habe eine weitere Nachricht vom App Store-Team erhalten, dass ich alle Benutzer auf den Zugriff auf die App beschränkt und bestimmten Personen in der Region die OTP-Überprüfung mit TWILO gestattet habe. Ich sollte Einschränkungen ausschließen, die alles sind und die App ist gerade im Beta-Test :). Das ist alles. Vielen Dank an alle.

gleiche Probleme

Es ist ziemlich schwer, Kunden zu erklären, dass unsere App absolut in Ordnung ist, es ist nur eine Warnung usw. ((

Ich verstehe @YuliaLoyko total. Leider bewegen wir uns so schnell wir können.

Warten auf 4.4

@ prasannamca1107 nur um klar zu sein und nicht deine Hoffnungen zu

Auf der positiven Seite habe ich eine funktionierende Lösung gesehen, wie ich bereits erwähnt habe: Wir arbeiten daran, aber es wird eine Weile dauern, bis alles in einer Reihe steht und wir es in Ihre Hände legen können.

Bisher ist die Nachricht von Apple immer noch nur eine Warnung!

Ich folgte einem Thread im Xamarin-Forum und fand diesen Link, der meiner Meinung nach funktionieren sollte.

Keine gleiche Warnung, die ich versucht habe

@softsan , danke fürs Teilen! Leider ist das derzeit keine Lösung. Derzeit gibt es keine (einfache) Lösung. Das einzige, was Sie tun können, was ich sehr empfehlen kann , ist das Erstellen eigener Xamarin.Forms-Pakete mit dem aus der Lösung gelöschten UIWebViewRenderer.

Wir arbeiten immer noch hart an einer Lösung, keine Sorge! :) :)

Ich habe letzten Freitag eine neue App eingereicht, ich habe die gleiche Warnung erhalten, aber genau das: Eine Warnung.
Die App ist problemlos genehmigt und in den App Stores gelistet.

@jfversluis , @softsan Ich habe meinen eigenen Renderer für das WebView geschrieben, der ein WKWebView zurückgibt. Ich habe den Code getestet und im Geschäft veröffentlicht und erhalte trotzdem die Warnung. Mein Renderer folgt dem typischen Muster für einen Renderer, aber hier ist ein kurzer Ausschnitt des relevanten Codes:

if (Control == null)
{
_contentController = neuer WKUserContentController ();
var frame = UIApplication.SharedApplication.Delegate.GetWindow (). Bounds;
var cgRect = new CoreGraphics.CGRect (frame.X, frame.Y, frame.Width, frame.Height);
var config = new WKWebViewConfiguration {UserContentController = _contentController};
_wKWebView = neues WKWebView (cgRect, config)
{
NavigationDelegate = neues WKNavigationDelegate ()
};

                    SetNativeControl(_wKWebView);
                }

Es gibt nur eine Stelle in meinem Code, an der ein Webbrowser verwendet wird. Ich habe diesen Code getestet und die Datentypen überprüft und überprüft, ob er korrekt ist. Ich habe jedoch den Fehler von Apple erhalten. Ich habe dem Review-Team einen Review-Wettbewerb vorgelegt und warte auf eine Rückmeldung.

@ Seanstilson wird es keinen Nutzen haben. Wie bereits in dieser Ausgabe erwähnt, wird der UIWebViewRenderer auch dann in die Xamarin.Forms-Binärdateien aufgenommen, wenn Sie einen benutzerdefinierten Renderer erstellen, der WKWebView verwendet, da er derzeit funktioniert. Wir arbeiten daran, dies zu ändern, aber bis wir dies tun, können Sie derzeit nichts tun, um dies zu ändern.

Apple wird Ihnen wahrscheinlich einfach sagen, dass es einen Verweis auf UIWebView gibt. Nicht in Ihrem Code, sondern über den Xamarin.Forms-Code, der sich noch in Ihrer App befindet.

Nachdem dies gesagt wurde; Wir werden sicherstellen, dass das Problem auf die eine oder andere Weise behoben wird, bevor Apple aus diesem Grund keine Binärdateien mehr akzeptiert.

Entschuldigung, ich habe den Beitrag über den UIWebViewRenderer, der gerade erstellt wird, verpasst
in die Binärdateien @jfversluis , mein schlechtes. Danke für die Antwort!

Am Do, 14. November 2019 um 11:54 Uhr Gerald Versluis [email protected]
schrieb:

@ Seanstilson https://github.com/seanstilson Es wird keinen Nutzen haben. Wie
weiter oben in dieser Ausgabe angegeben, auch wenn Sie einen benutzerdefinierten Renderer erstellen, der
Verwendet das WKWebView, wird der UIWebViewRenderer weiterhin im enthalten sein
Xamarin.Forms-Binärdateien aufgrund der aktuellen Funktionsweise. Wir arbeiten an
Ändern Sie das, aber bis wir es tun, können Sie nichts tun, um dies zu ändern
in diesem Moment.

Apple wird Ihnen wahrscheinlich einfach sagen, dass es einen Verweis auf UIWebView gibt. Nicht
in Ihrem Code, aber über den Xamarin.Forms-Code noch in Ihrer App.

Nachdem dies gesagt wurde; Wir werden sicherstellen, dass das Problem auf die eine oder andere Weise behoben wird
Apple akzeptiert aus diesem Grund keine Binärdateien mehr.

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/xamarin/Xamarin.Forms/issues/7323?
oder abbestellen
https://github.com/notifications/unsubscribe-auth/AMVYZVUT5A73R4SXSQFRDMDQTWGF5ANCNFSM4ISLFU3Q
.

@ Seanstilson mach dir keine Sorgen. Hier ist viel los, ich kann mir vorstellen, dass du etwas verpasst :)

Hallo Freunde, wir werden dieses Problem vorerst sperren, während wir auf die Ergebnisse des Xamarin.iOS-Teams warten, bevor wir fortfahren können. Auf diese Weise können wir dieses Problem richtig verfolgen, und Personen, die darauf stoßen, können die relevantesten Informationen direkt finden, anstatt alle Konversationen hier durchgehen zu müssen. Wann immer es etwas Neues zu berichten gibt, werden wir es auf jeden Fall tun.

Für eine gute Zusammenfassung der Vorgänge lesen Sie bitte diesen Kommentar hier: https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment -532228577

Die neuesten Fortschritte zu diesem Zeitpunkt finden Sie hier: https://github.com/xamarin/Xamarin.Forms/issues/7323#issuecomment -542363338

Das Wesentliche dabei ist: Wir arbeiten abwärtskompatibel an dem Problem und sind auf die eine oder andere Weise bereit, bevor Apple Apps aus diesem Grund tatsächlich ablehnt.

Im Moment erhalten Sie nur eine Warnmeldung von Apple, die vorerst ignoriert werden kann.

Danke für ihr Verständnis und ihre Geduld!

Kleines Update dazu: # 8001 wurde als erster Schritt zum vorgeschlagenen Fix zusammengeführt. Dies bedeutet jedoch nicht, dass das Problem in einer kommenden Version noch behoben sein wird.

Wie bereits erwähnt, muss in Xamarin.iOS auch etwas geändert werden, damit dies funktioniert. Wann immer sie das tun, wird die richtige Xamarin.iOS-Version zusammen mit diesem Code (ab 4.5) endgültig verschwinden.

Um ganz klar zu sein: Version 4.5 von Xamarin.Forms allein wird dieses Problem NICHT beheben. Immer wenn die vollständige Korrektur in Sicht ist, werde ich diese auf jeden Fall erneut aktualisieren.

Vielen Dank!

Apple hat eine kurze Erklärung veröffentlicht, in der sie mehr Klarheit über ihre Pläne zur Abwertung von UIWebView . Ich denke, das wichtigste Stück ist folgendes:

Der App Store akzeptiert ab April 2020 keine neuen Apps mehr mit UIWebView und ab Dezember 2020 App-Updates mit UIWebView.

Das heißt, wir haben noch etwas Zeit, um eine Lösung zu finden, was auch immer es sein wird. In der Zwischenzeit haben wir uns mit unserer bevorzugten Lösung befasst. Zusammen mit dem Xamarin.iOS-Team ist es uns gelungen, eine App an den Store zu senden, die die Warnung nicht auslöst und dennoch abwärtskompatibel bleibt. Das bedeutet, das (jetzt) ​​alte WebViewRenderer . Wir entscheiden immer noch, ob dies die Lösung ist, basierend auf ein paar Faktoren, aber wir arbeiten immer noch daran und werden sicherstellen, dass wir bereit sind. Zumindest wissen wir jetzt, wann wir bereit sein müssen. Vielen Dank für Ihre Geduld!

Tolle Neuigkeiten an alle! Es gibt eine endgültige Lösung, die Sie bald verwenden sollten.

Es erfordert ein wenig Arbeit auf Ihrer Seite. Ich arbeite derzeit an einer Dokumentation, die beschreibt, was das ist. Keine Sorge, es ist nicht so kompliziert!

Wann immer das live ist und alle Bits auch für dich verfügbar sind, werde ich es hier posten. Keine festen Versprechen, aber es sollte ziemlich bald und weit vor dem April-Termin sein.

Nochmals vielen Dank, dass Sie dabei bleiben!

Lösung ist da!

Alle Bits sind vorhanden, Lösungszeit! TL; DR: Alles wird in dieser Dokumentation hier beschrieben .

Stellen Sie sicher, dass Sie das neueste Visual Studio (für Mac) auf dem stabilen Kanal verwenden, damit Sie auf dem richtigen Weg sind. Im Moment müssen Sie die Vorschau-Version von Xamarin.Forms 4.5-pre1 verwenden. Ich verstehe, dass dies möglicherweise nicht für Sie alle eine Option ist, aber seien Sie versichert, dass das stabile Paket weit vor Ablauf der Frist veröffentlicht wird. Stable 4.5 ist für Mitte bis Ende Februar geplant.

Zuletzt setzen Sie das Flag --optimize=experimental-xforms-product-type in Ihre iOS-Einstellung für zusätzliche mtouch-Argumente , und Sie sollten die Abwertungswarnung von Apple UIWebView natürlich 🙂

Ich möchte Sie bitten, dies so bald wie möglich zu versuchen. Möglicherweise möchten Sie keine aktuelle Version basierend auf dem Forms-Vorschau-Paket für den Store veröffentlichen, sondern zumindest einen Build hochladen, um zu überprüfen, ob diese Lösung ordnungsgemäß funktioniert. Wann immer Sie dies tun, können Sie einfach auf das stabile 4.5-Paket aktualisieren und eine neue Version mit Vertrauen veröffentlichen.

Wenn Sie mit dieser Lösung auf etwas stoßen, können Sie sich gerne direkt an mich wenden (gerald.versluis [a mit langem Schwanz] microsoft.com) oder ein neues Problem im Repository öffnen. Natürlich ist auch positives Feedback immer willkommen 😉

Danke nochmal!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen