Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

[Bug] ITMS-90809: Deprecated API Usage (iOS) still exists #10739

Closed
Sebastian1989101 opened this issue May 17, 2020 · 10 comments
Closed

[Bug] ITMS-90809: Deprecated API Usage (iOS) still exists #10739

Sebastian1989101 opened this issue May 17, 2020 · 10 comments
Labels
a/webview p/iOS 🍎 s/unverified New report that has yet to be verified t/bug 🐛

Comments

@Sebastian1989101
Copy link

Tested with Forms 4.6.0.726 and 4.6.0.772. And yes, I have added the "--optimize=experimental-xforms-product-type" mtouch argument. Or do I have to add this to my watchOS, watchOS Extension and Today Extension project as well?? This is my current VS for Mac info output:

	2.1.503
	2.1.302
	2.1.301
	2.1.4
	2.0.0
	1.0.4
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/6.8.0/lib/mono/msbuild/Current/bin/Sdks

.NET Core Runtime
Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
	3.1.4
	3.1.2
	3.1.1
	3.1.0
	3.0.1
	3.0.0
	2.1.18
	2.1.17
	2.1.16
	2.1.15
	2.1.14
	2.1.13
	2.1.12
	2.1.11
	2.1.9
	2.1.8
	2.1.7
	2.1.2
	2.1.1
	2.0.5
	2.0.0
	1.1.2
	1.0.5

Xamarin.Profiler
Version: 1.6.12.29
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

Updater
Version: 11

Apple Developer Tools
Xcode 11.4.1 (16137)
Build 11E503a

Xamarin.Mac
Version: 6.16.0.13 (Visual Studio Enterprise)
Hash: b75deaf82
Branch: d16-5-xcode11.4
Build date: 2020-04-01 21:33:18-0400

Xamarin.iOS
Version: 13.16.0.13 (Visual Studio Enterprise)
Hash: b75deaf82
Branch: d16-5-xcode11.4
Build date: 2020-04-01 21:33:19-0400

Xamarin Designer
Version: 16.5.0.471
Hash: 35aa4889d
Branch: remotes/origin/d16-5
Build date: 2020-02-25 00:52:08 UTC

Xamarin.Android
Version: 10.2.0.100 (Visual Studio Enterprise)
Commit: xamarin-android/d16-5/988c811
Android SDK: /Users/sebastian/Library/Android/sdk
	Supported Android versions:
		4.4 (API level 19)
		5.1 (API level 22)
		6.0 (API level 23)
		7.0 (API level 24)
		7.1 (API level 25)
		8.0 (API level 26)
		8.1 (API level 27)

SDK Tools Version: 26.1.1
SDK Platform Tools Version: 29.0.6
SDK Build Tools Version: 28.0.3

Build Information: 
Mono: c0c5c78
Java.Interop: xamarin/java.interop/d16-5@fc18c54
ProGuard: xamarin/proguard/master@905836d
SQLite: xamarin/sqlite/3.28.0@46204c4
Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-5@9f4ed4b

Microsoft Mobile OpenJDK
Java SDK: /Users/sebastian/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_8.0.25
1.8.0-25
Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL

Android SDK Manager
Version: 16.5.0.39
Hash: 6fb4c79
Branch: remotes/origin/d16-5
Build date: 2020-04-29 20:09:00 UTC

Android Device Manager
Version: 16.5.0.73
Hash: dff2f03
Branch: remotes/origin/d16-5
Build date: 2020-04-29 20:09:20 UTC

Xamarin Inspector
Version: 1.4.3
Hash: db27525
Branch: 1.4-release
Build date: Mon, 09 Jul 2018 21:20:18 GMT
Client compatibility: 1

Build Information
Release ID: 805060011
Git revision: b31ce1cc7c62479ddaa387af4b7a1a6cb1e72443
Build date: 2020-05-13 14:55:07-04
Build branch: release-8.5
Xamarin extensions: b31ce1cc7c62479ddaa387af4b7a1a6cb1e72443

Operating System
Mac OS X 10.15.4
@Sebastian1989101 Sebastian1989101 added s/unverified New report that has yet to be verified t/bug 🐛 labels May 17, 2020
@jfversluis
Copy link
Member

There is quite a bit written about this already, did you happen to see that?

It basically comes down to:

  • Use Forms 4.5+ and Xamarin.iOS 13.10+
  • Make sure your NuGet packages do not still reference UIWebView or WebViewRenderer, or maybe any native binding libraries that you might have created yourself
  • Set Linker Behavior to either SDK Only or All
  • Make sure that you set the mtouch argument on the right build configuration and that that is also the build configuration that is used to create the binary that is sent to the store.

In regard to the NuGets, you can go into your ipa file (which is basically just a zip) with a Terminal window so do:

cd YOURAPP.ipa
grep -r UIWebView .

Note the dot (.) at the end. This should give you a list of results where UIWebView is still referenced. It might give you some indication of what is still referencing it.

If all this fails and you are sure that you are not using UIWebView and none of your (external) code depends on it you can force the removal of the type as described here: https://docs.microsoft.com/en-us/xamarin/ios/release-notes/13/13.16#special-cases

Also see: #9823 and #7323 and the discussions under the blogpost: https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/

All cases that have been reported we have been able to solve, so I'm quite sure the functionality works as intended, it's just a couple of pieces that have to fit together. Sorry about that.

@pupauoga
Copy link

Hi,
We use latest Xamarin Forms, that uses Xamarin.iOS.MaterialComponents 92.0.0, but with grep command we get this result:
./.....App.iOS.app/Frameworks/MaterialComponents.framework/MaterialComponents matches
Can you advice what steps should we take now?

@jfversluis
Copy link
Member

Make sure that you indeed have all the latest versions on all of your projects (both shared library and iOS), delete your obj/bin folders from the file system and do a clean and rebuild to make sure no caching is happening.

@pupauoga
Copy link

That did not solve the issue, anything else? We are stuck with this for a very long time now

Make sure that you indeed have all the latest versions on all of your projects (both shared library and iOS), delete your obj/bin folders from the file system and do a clean and rebuild to make sure no caching is happening.

@jfversluis
Copy link
Member

I'm really sorry but I don't know what else to tell you. We are very sure that with the latest version the reference to MaterialComponents has been updated and I have had multiple reports confirming that has fixed the issue for people concerning the Material part of things.

If that is still showing up with with your grep command, then there has to be something cached somewhere that still ends up in your build.

@Sebastian1989101
Copy link
Author

@jfversluis Is there some other cache beside the packages folder and the obj/bin folders that could be use on a Rebuild? Because after completly removing Xamarin.Forms and readding the NuGet package this error was gone. The terminal command helped a lot to find the cause of the issue. It always had Xamarin.iOS with this part in it's bundle.

@jfversluis
Copy link
Member

@Sebastian1989101 if I understand correctly it works for you now? I know there is some kind of iOS archive cache somewhere buried deep. But normally that shouldn't be the issue. If heard once that someone resolved the caching issue by disabling incremental builds in their iOS project options.

@Sebastian1989101
Copy link
Author

@jfversluis Yes it works now. I don't know what it was but after the reinstall of Forms it was gone, so I guess it was some sort of cache going on. Should I close this issue? Because @pupauoga seems to have also a related issue.

@jfversluis
Copy link
Member

@pupauoga if you still can't figure it out please find my email on my github profile page and reach out directly. Closing this one for now. We have a couple of issues about this going on and trying to keep things as centralized as possible :)

Thanks!

@XamarinInfo
Copy link

XamarinInfo commented Sep 15, 2020

hi @jfversluis
Issue reported
This is a issue I reported.
My build warning says that -'Xamarin.Forms.Platform.iOs'-This is the package which contains UIWebview reference.But as I am checking I couldnt find out such a package in my project.Can you please help me in this.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a/webview p/iOS 🍎 s/unverified New report that has yet to be verified t/bug 🐛
Projects
None yet
Development

No branches or pull requests

5 participants