Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android 12 Update and SDK update #237

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open

Android 12 Update and SDK update #237

wants to merge 13 commits into from

Conversation

mos379
Copy link

@mos379 mos379 commented Apr 27, 2022

Since it was quite some time since the latest update..

This solves as well issues #210 #236

@net-foundation-cla
Copy link

net-foundation-cla bot commented Apr 27, 2022

CLA assistant check
All CLA requirements met.

@@ -55,7 +55,7 @@

<ItemGroup>

<PackageReference Include="Xamarin.GooglePlayServices.Basement" Version="71.1620.0" PrivateAssets="None" />
<PackageReference Include="Xamarin.GooglePlayServices.Basement" Version="117.6.0.6" PrivateAssets="None" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the most recent version, or the version needed by facebook sdk 13?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question applies to other nuget updates.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes were necessary to support Android 12.
these are the most recent versions, not the lowest needed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest to go for the lowest needed to avoid enforcing users to go for the newest version through a transitive dependency.

@@ -2,7 +2,7 @@

<PropertyGroup>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the dependencies I saw on maven central, there might be some changes.

Was made sure, that no adaption to the dependency graph between the C# projects is needed?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I didn't check on this, as the projects built in the same order as before without issues.

var FB_VERSION = "11.2.0";
var NUGET_VERSION = "11.2.0.1";
var FB_VERSION = "13.1.0";
var NUGET_VERSION = "13.1.0";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you see additional warnings when building your updated version?

Same question, different way to ask: Are we sure that no modifications to metadata.xml files are needed?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually yes there are quite a few warnings :(

1>CLASSPARSE : warning : no match for AccessTokenSource.valueOf (rex: <span class="sympad"><a href=".*com/facebook/AccessTokenSource.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FacebookRequestError.Category.valueOf (rex: <span class="sympad"><a href=".*com/facebook/FacebookRequestError.Category.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FacebookSdk.getApplicationSignature (rex: <span class="sympad"><a href=".*com/facebook/FacebookSdk.html#getApplicationSignature\(android.content.Context\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FacebookSdk.publishInstallAsync (rex: <span class="sympad"><a href=".*com/facebook/FacebookSdk.html#publishInstallAsync\(android.content.Context, java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FacebookSdk.setDataProcessingOptions (rex: <span class="sympad"><a href=".*com/facebook/FacebookSdk.html#setDataProcessingOptions\(java.lang.String\[\]\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FacebookSdk.setDataProcessingOptions (rex: <span class="sympad"><a href=".*com/facebook/FacebookSdk.html#setDataProcessingOptions\(java.lang.String\[\], int, int\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestAsyncTask.doInBackground (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestAsyncTask.html#doInBackground\(java.lang.Object\[\]\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestAsyncTask.onPostExecute (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestAsyncTask.html#onPostExecute\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.add (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#add\(int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.add (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#add\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.contains (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#contains\(com.facebook.GraphRequest\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.contains (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#contains\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.get (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#get\(int\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.indexOf (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#indexOf\(com.facebook.GraphRequest\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.indexOf (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#indexOf\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.lastIndexOf (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#lastIndexOf\(com.facebook.GraphRequest\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.lastIndexOf (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#lastIndexOf\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.remove (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#remove\(int\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.remove (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#remove\(int\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.remove (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#remove\(com.facebook.GraphRequest\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.remove (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#remove\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphRequestBatch.set (rex: <span class="sympad"><a href=".*com/facebook/GraphRequestBatch.html#set\(int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GraphResponse.PagingDirection.valueOf (rex: <span class="sympad"><a href=".*com/facebook/GraphResponse.PagingDirection.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for HttpMethod.valueOf (rex: <span class="sympad"><a href=".*com/facebook/HttpMethod.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for LoggingBehavior.valueOf (rex: <span class="sympad"><a href=".*com/facebook/LoggingBehavior.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AppEventsLogger.FlushBehavior.valueOf (rex: <span class="sympad"><a href=".*com/facebook/appevents/AppEventsLogger.FlushBehavior.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AppEventsLogger.ProductAvailability.valueOf (rex: <span class="sympad"><a href=".*com/facebook/appevents/AppEventsLogger.ProductAvailability.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AppEventsLogger.ProductCondition.valueOf (rex: <span class="sympad"><a href=".*com/facebook/appevents/AppEventsLogger.ProductCondition.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FlushResult.valueOf (rex: <span class="sympad"><a href=".*com/facebook/appevents/FlushResult.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for PerformanceGuardian.UseCase.valueOf (rex: <span class="sympad"><a href=".*com/facebook/appevents/PerformanceGuardian.UseCase.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for UserDataStore.access$getExternalHashedUserData$p (rex: <span class="sympad"><a href=".*com/facebook/appevents/UserDataStore.html#access$getExternalHashedUserData$p\(com.facebook.appevents.UserDataStore\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for UserDataStore.access$getInitialized$p (rex: <span class="sympad"><a href=".*com/facebook/appevents/UserDataStore.html#access$getInitialized$p\(com.facebook.appevents.UserDataStore\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for UserDataStore.access$getInternalHashedUserData$p (rex: <span class="sympad"><a href=".*com/facebook/appevents/UserDataStore.html#access$getInternalHashedUserData$p\(com.facebook.appevents.UserDataStore\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for UserDataStore.access$getSharedPreferences$p (rex: <span class="sympad"><a href=".*com/facebook/appevents/UserDataStore.html#access$getSharedPreferences$p\(com.facebook.appevents.UserDataStore\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for UserDataStore.access$getTAG$p (rex: <span class="sympad"><a href=".*com/facebook/appevents/UserDataStore.html#access$getTAG$p\(com.facebook.appevents.UserDataStore\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for UserDataStore.access$initAndWait (rex: <span class="sympad"><a href=".*com/facebook/appevents/UserDataStore.html#access$initAndWait\(com.facebook.appevents.UserDataStore\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for UserDataStore.access$setSharedPreferences$p (rex: <span class="sympad"><a href=".*com/facebook/appevents/UserDataStore.html#access$setSharedPreferences$p\(com.facebook.appevents.UserDataStore, android.content.SharedPreferences\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for UserDataStore.access$updateHashUserData (rex: <span class="sympad"><a href=".*com/facebook/appevents/UserDataStore.html#access$updateHashUserData\(com.facebook.appevents.UserDataStore, android.os.Bundle\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for UserDataStore.access$writeDataIntoCache (rex: <span class="sympad"><a href=".*com/facebook/appevents/UserDataStore.html#access$writeDataIntoCache\(com.facebook.appevents.UserDataStore, java.lang.String, java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for MetadataIndexer.onActivityResumed (rex: <span class="sympad"><a href=".*com/facebook/appevents/aam/MetadataIndexer.html#onActivityResumed\(android.app.Activity\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for MetadataRule.updateRules (rex: <span class="sympad"><a href=".*com/facebook/appevents/aam/MetadataRule.html#updateRules\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for CodelessLoggingEventListener.getOnClickListener (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/CodelessLoggingEventListener.html#getOnClickListener\(com.facebook.appevents.codeless.internal.EventBinding, android.view.View, android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for CodelessLoggingEventListener.getOnItemClickListener (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/CodelessLoggingEventListener.html#getOnItemClickListener\(com.facebook.appevents.codeless.internal.EventBinding, android.view.View, android.widget.AdapterView\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for CodelessLoggingEventListener.updateParameters (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/CodelessLoggingEventListener.html#updateParameters\(android.os.Bundle\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for CodelessLoggingEventListener.AutoLoggingOnClickListener.onClick (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/CodelessLoggingEventListener.AutoLoggingOnClickListener.html#onClick\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for CodelessManager.onActivityDestroyed (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/CodelessManager.html#onActivityDestroyed\(android.app.Activity\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for CodelessManager.onActivityPaused (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/CodelessManager.html#onActivityPaused\(android.app.Activity\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for CodelessManager.onActivityResumed (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/CodelessManager.html#onActivityResumed\(android.app.Activity\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for RCTCodelessLoggingEventListener.getOnTouchListener (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/RCTCodelessLoggingEventListener.html#getOnTouchListener\(com.facebook.appevents.codeless.internal.EventBinding, android.view.View, android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewIndexer.buildAppIndexingRequest (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/ViewIndexer.html#buildAppIndexingRequest\(java.lang.String, com.facebook.AccessToken, java.lang.String, java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewIndexer.sendToServerUnity (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/ViewIndexer.html#sendToServerUnity\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewIndexer.sendToServerUnityInstance (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/ViewIndexer.html#sendToServerUnityInstance\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for SensitiveUserDataUtils.isSensitiveUserData (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/SensitiveUserDataUtils.html#isSensitiveUserData\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.findRCTRootView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#findRCTRootView\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.getChildrenOfView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#getChildrenOfView\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.getClassTypeBitmask (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#getClassTypeBitmask\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.getDictionaryOfView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#getDictionaryOfView\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.getExistingOnClickListener (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#getExistingOnClickListener\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.getExistingOnTouchListener (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#getExistingOnTouchListener\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.getHintOfView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#getHintOfView\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.getParentOfView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#getParentOfView\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.getTextOfView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#getTextOfView\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.getTouchReactView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#getTouchReactView\(float\[\], android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.isRCTButton (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#isRCTButton\(android.view.View, android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.isRCTRootView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#isRCTRootView\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.isRCTTextView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#isRCTTextView\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.isRCTViewGroup (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#isRCTViewGroup\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.setOnClickListener (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#setOnClickListener\(android.view.View, android.view.View.OnClickListener\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.updateAppearanceOfView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#updateAppearanceOfView\(android.view.View, org.json.JSONObject, float\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewHierarchy.updateBasicInfoOfView (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/internal/ViewHierarchy.html#updateBasicInfoOfView\(android.view.View, org.json.JSONObject\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InAppPurchaseAutoLogger.startIapLogging (rex: <span class="sympad"><a href=".*com/facebook/appevents/iap/InAppPurchaseAutoLogger.html#startIapLogging\(android.content.Context\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InAppPurchaseBillingClientWrapper.getOrCreateInstance (rex: <span class="sympad"><a href=".*com/facebook/appevents/iap/InAppPurchaseBillingClientWrapper.html#getOrCreateInstance\(android.content.Context\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InAppPurchaseBillingClientWrapper.queryPurchase (rex: <span class="sympad"><a href=".*com/facebook/appevents/iap/InAppPurchaseBillingClientWrapper.html#queryPurchase\(java.lang.String, java.lang.Runnable\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InAppPurchaseBillingClientWrapper.queryPurchaseHistory (rex: <span class="sympad"><a href=".*com/facebook/appevents/iap/InAppPurchaseBillingClientWrapper.html#queryPurchaseHistory\(java.lang.String, java.lang.Runnable\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InAppPurchaseEventManager.hasFreeTrialPeirod (rex: <span class="sympad"><a href=".*com/facebook/appevents/iap/InAppPurchaseEventManager.html#hasFreeTrialPeirod\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InAppPurchaseLoggerManager.filterPurchaseLogging (rex: <span class="sympad"><a href=".*com/facebook/appevents/iap/InAppPurchaseLoggerManager.html#filterPurchaseLogging\(java.util.Map<java.lang.String, org.json.JSONObject>, java.util.Map<java.lang.String, org.json.JSONObject>\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InAppPurchaseSkuDetailsWrapper.getSkuDetailsParams (rex: <span class="sympad"><a href=".*com/facebook/appevents/iap/InAppPurchaseSkuDetailsWrapper.html#getSkuDetailsParams\(java.lang.String, java.util.List<java.lang.String>\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InAppPurchaseUtils.getClass (rex: <span class="sympad"><a href=".*com/facebook/appevents/iap/InAppPurchaseUtils.html#getClass\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InAppPurchaseUtils.getMethod (rex: <span class="sympad"><a href=".*com/facebook/appevents/iap/InAppPurchaseUtils.html#getMethod\(java.lang.Class<\?>, java.lang.String, java.lang.Class<\?>...\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InAppPurchaseUtils.invokeMethod (rex: <span class="sympad"><a href=".*com/facebook/appevents/iap/InAppPurchaseUtils.html#invokeMethod\(java.lang.Class<\?>, java.lang.reflect.Method, java.lang.Object, java.lang.Object...\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AppEventsLoggerUtility.GraphAPIActivityType.valueOf (rex: <span class="sympad"><a href=".*com/facebook/appevents/internal/AppEventsLoggerUtility.GraphAPIActivityType.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FileDownloadTask.doInBackground (rex: <span class="sympad"><a href=".*com/facebook/appevents/internal/FileDownloadTask.html#doInBackground\(java.lang.Object\[\]\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FileDownloadTask.onPostExecute (rex: <span class="sympad"><a href=".*com/facebook/appevents/internal/FileDownloadTask.html#onPostExecute\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ModelManager.access$addModels (rex: <span class="sympad"><a href=".*com/facebook/appevents/ml/ModelManager.html#access$addModels\(com.facebook.appevents.ml.ModelManager, org.json.JSONObject\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ModelManager.access$enableMTML (rex: <span class="sympad"><a href=".*com/facebook/appevents/ml/ModelManager.html#access$enableMTML\(com.facebook.appevents.ml.ModelManager\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ModelManager.access$fetchModels (rex: <span class="sympad"><a href=".*com/facebook/appevents/ml/ModelManager.html#access$fetchModels\(com.facebook.appevents.ml.ModelManager\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ModelManager.access$isValidTimestamp (rex: <span class="sympad"><a href=".*com/facebook/appevents/ml/ModelManager.html#access$isValidTimestamp\(com.facebook.appevents.ml.ModelManager, long\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ModelManager.access$parseJsonArray (rex: <span class="sympad"><a href=".*com/facebook/appevents/ml/ModelManager.html#access$parseJsonArray\(com.facebook.appevents.ml.ModelManager, org.json.JSONArray\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ModelManager.Task.valueOf (rex: <span class="sympad"><a href=".*com/facebook/appevents/ml/ModelManager.Task.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for RemoteServiceWrapper.EventType.valueOf (rex: <span class="sympad"><a href=".*com/facebook/appevents/ondeviceprocessing/RemoteServiceWrapper.EventType.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for RemoteServiceWrapper.ServiceResult.valueOf (rex: <span class="sympad"><a href=".*com/facebook/appevents/ondeviceprocessing/RemoteServiceWrapper.ServiceResult.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for SuggestedEventsManager.populateEventsFromRawJsonString (rex: <span class="sympad"><a href=".*com/facebook/appevents/suggestedevents/SuggestedEventsManager.html#populateEventsFromRawJsonString\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for SuggestedEventsManager.trackActivity (rex: <span class="sympad"><a href=".*com/facebook/appevents/suggestedevents/SuggestedEventsManager.html#trackActivity\(android.app.Activity\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ViewOnClickListener.onClick (rex: <span class="sympad"><a href=".*com/facebook/appevents/suggestedevents/ViewOnClickListener.html#onClick\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for Task.continueWhile$default (rex: <span class="sympad"><a href=".*com/facebook/bolts/Task.html#continueWhile$default\(com.facebook.bolts.Task, java.util.concurrent.Callable, com.facebook.bolts.Continuation, java.util.concurrent.Executor, com.facebook.bolts.CancellationToken, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for BoltsMeasurementEventListener.access$open (rex: <span class="sympad"><a href=".*com/facebook/internal/BoltsMeasurementEventListener.html#access$open\(com.facebook.internal.BoltsMeasurementEventListener\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for BoltsMeasurementEventListener.access$setSingleton$cp (rex: <span class="sympad"><a href=".*com/facebook/internal/BoltsMeasurementEventListener.html#access$setSingleton$cp\(com.facebook.internal.BoltsMeasurementEventListener\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for BoltsMeasurementEventListener.getInstance (rex: <span class="sympad"><a href=".*com/facebook/internal/BoltsMeasurementEventListener.html#getInstance\(android.content.Context\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for CallbackManagerImpl.RequestCodeOffset.valueOf (rex: <span class="sympad"><a href=".*com/facebook/internal/CallbackManagerImpl.RequestCodeOffset.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FeatureManager.Feature.valueOf (rex: <span class="sympad"><a href=".*com/facebook/internal/FeatureManager.Feature.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FetchedAppGateKeepersManager.setRuntimeGateKeeper$default (rex: <span class="sympad"><a href=".*com/facebook/internal/FetchedAppGateKeepersManager.html#setRuntimeGateKeeper$default\(java.lang.String, com.facebook.internal.gatekeeper.GateKeeper, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FileLruCache.get$default (rex: <span class="sympad"><a href=".*com/facebook/internal/FileLruCache.html#get$default\(com.facebook.internal.FileLruCache, java.lang.String, java.lang.String, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FileLruCache.openPutStream$default (rex: <span class="sympad"><a href=".*com/facebook/internal/FileLruCache.html#openPutStream$default\(com.facebook.internal.FileLruCache, java.lang.String, java.lang.String, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for ImageRequest.Builder.copy$default (rex: <span class="sympad"><a href=".*com/facebook/internal/ImageRequest.Builder.html#copy$default\(com.facebook.internal.ImageRequest.Builder, android.content.Context, android.net.Uri, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for NativeProtocol.access$fetchAllAvailableProtocolVersionsForAppInfo (rex: <span class="sympad"><a href=".*com/facebook/internal/NativeProtocol.html#access$fetchAllAvailableProtocolVersionsForAppInfo\(com.facebook.internal.NativeProtocol, com.facebook.internal.NativeProtocol.NativeAppInfo\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for NativeProtocol.access$getFacebookAppInfoList$p (rex: <span class="sympad"><a href=".*com/facebook/internal/NativeProtocol.html#access$getFacebookAppInfoList$p\(com.facebook.internal.NativeProtocol\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for NativeProtocol.access$getProtocolVersionsAsyncUpdating$p (rex: <span class="sympad"><a href=".*com/facebook/internal/NativeProtocol.html#access$getProtocolVersionsAsyncUpdating$p\(com.facebook.internal.NativeProtocol\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for SmartLoginOption.valueOf (rex: <span class="sympad"><a href=".*com/facebook/internal/SmartLoginOption.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for WorkQueue.addActiveWorkItem$default (rex: <span class="sympad"><a href=".*com/facebook/internal/WorkQueue.html#addActiveWorkItem$default\(com.facebook.internal.WorkQueue, java.lang.Runnable, boolean, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GateKeeper.copy$default (rex: <span class="sympad"><a href=".*com/facebook/internal/gatekeeper/GateKeeper.html#copy$default\(com.facebook.internal.gatekeeper.GateKeeper, java.lang.String, boolean, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GateKeeperRuntimeCache.dumpGateKeepers$default (rex: <span class="sympad"><a href=".*com/facebook/internal/gatekeeper/GateKeeperRuntimeCache.html#dumpGateKeepers$default\(com.facebook.internal.gatekeeper.GateKeeperRuntimeCache, java.lang.String, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GateKeeperRuntimeCache.getGateKeeper$default (rex: <span class="sympad"><a href=".*com/facebook/internal/gatekeeper/GateKeeperRuntimeCache.html#getGateKeeper$default\(com.facebook.internal.gatekeeper.GateKeeperRuntimeCache, java.lang.String, java.lang.String, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GateKeeperRuntimeCache.getGateKeeperValue$default (rex: <span class="sympad"><a href=".*com/facebook/internal/gatekeeper/GateKeeperRuntimeCache.html#getGateKeeperValue$default\(com.facebook.internal.gatekeeper.GateKeeperRuntimeCache, java.lang.String, java.lang.String, boolean, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GateKeeperRuntimeCache.resetCache$default (rex: <span class="sympad"><a href=".*com/facebook/internal/gatekeeper/GateKeeperRuntimeCache.html#resetCache$default\(com.facebook.internal.gatekeeper.GateKeeperRuntimeCache, java.lang.String, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GateKeeperRuntimeCache.setGateKeeper$default (rex: <span class="sympad"><a href=".*com/facebook/internal/gatekeeper/GateKeeperRuntimeCache.html#setGateKeeper$default\(com.facebook.internal.gatekeeper.GateKeeperRuntimeCache, java.lang.String, com.facebook.internal.gatekeeper.GateKeeper, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GateKeeperRuntimeCache.setGateKeepers$default (rex: <span class="sympad"><a href=".*com/facebook/internal/gatekeeper/GateKeeperRuntimeCache.html#setGateKeepers$default\(com.facebook.internal.gatekeeper.GateKeeperRuntimeCache, java.lang.String, java.util.List, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for GateKeeperRuntimeCache.setGateKeeperValue$default (rex: <span class="sympad"><a href=".*com/facebook/internal/gatekeeper/GateKeeperRuntimeCache.html#setGateKeeperValue$default\(com.facebook.internal.gatekeeper.GateKeeperRuntimeCache, java.lang.String, java.lang.String, boolean, int, java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for InstrumentData.Type.valueOf (rex: <span class="sympad"><a href=".*com/facebook/internal/instrument/InstrumentData.Type.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AndroidRootResolver.ListenableArrayList.add (rex: <span class="sympad"><a href=".*com/facebook/internal/logging/dumpsys/AndroidRootResolver.ListenableArrayList.html#add\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AndroidRootResolver.ListenableArrayList.contains (rex: <span class="sympad"><a href=".*com/facebook/internal/logging/dumpsys/AndroidRootResolver.ListenableArrayList.html#contains\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AndroidRootResolver.ListenableArrayList.contains (rex: <span class="sympad"><a href=".*com/facebook/internal/logging/dumpsys/AndroidRootResolver.ListenableArrayList.html#contains\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AndroidRootResolver.ListenableArrayList.indexOf (rex: <span class="sympad"><a href=".*com/facebook/internal/logging/dumpsys/AndroidRootResolver.ListenableArrayList.html#indexOf\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AndroidRootResolver.ListenableArrayList.indexOf (rex: <span class="sympad"><a href=".*com/facebook/internal/logging/dumpsys/AndroidRootResolver.ListenableArrayList.html#indexOf\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AndroidRootResolver.ListenableArrayList.lastIndexOf (rex: <span class="sympad"><a href=".*com/facebook/internal/logging/dumpsys/AndroidRootResolver.ListenableArrayList.html#lastIndexOf\(android.view.View\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AndroidRootResolver.ListenableArrayList.lastIndexOf (rex: <span class="sympad"><a href=".*com/facebook/internal/logging/dumpsys/AndroidRootResolver.ListenableArrayList.html#lastIndexOf\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AndroidRootResolver.ListenableArrayList.remove (rex: <span class="sympad"><a href=".*com/facebook/internal/logging/dumpsys/AndroidRootResolver.ListenableArrayList.html#remove\(int\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AndroidRootResolver.ListenableArrayList.remove (rex: <span class="sympad"><a href=".*com/facebook/internal/logging/dumpsys/AndroidRootResolver.ListenableArrayList.html#remove\(int\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AndroidRootResolver.ListenableArrayList.remove (rex: <span class="sympad"><a href=".*com/facebook/internal/logging/dumpsys/AndroidRootResolver.ListenableArrayList.html#remove\(java.lang.Object\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for DefaultAudience.valueOf (rex: <span class="sympad"><a href=".*com/facebook/login/DefaultAudience.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for LoginTargetApp.valueOf (rex: <span class="sympad"><a href=".*com/facebook/login/LoginTargetApp.html#valueOf\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for FacebookSdk.GraphRequestCreator.createPostRequest (rex: <span class="sympad"><a href=".*com/facebook/FacebookSdk.GraphRequestCreator.html#createPostRequest\(com.facebook.AccessToken, java.lang.String, org.json.JSONObject, com.facebook.GraphRequest.Callback\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for CodelessManager.CodelessSessionChecker.checkCodelessSession (rex: <span class="sympad"><a href=".*com/facebook/appevents/codeless/CodelessManager.CodelessSessionChecker.html#checkCodelessSession\(java.lang.String\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for AppLinkResolver.getAppLinkFromUrlInBackground (rex: <span class="sympad"><a href=".*com/facebook/bolts/AppLinkResolver.html#getAppLinkFromUrlInBackground\(android.net.Uri\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no match for Continuation.then (rex: <span class="sympad"><a href=".*com/facebook/bolts/Continuation.html#then\(com.facebook.bolts.Task<TTaskResult>\)".*\(([^\(\)]*)\))
1>CLASSPARSE : warning : no document found : ..\..\externals\facebook-core-docs\com/facebook/ppml/receiver/IReceiverService.html

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To speed up discussion, feel free to contact me on https://gitter.im

@mos379
Copy link
Author

mos379 commented Apr 29, 2022

@thisisthekap Any chance you can have a look at the warnings for the Core package?
for example this one I don't understand
warning BG8A04: Metadata.xml element '<attr path="/api/package[@name='com.facebook']/interface[@name='AccessToken.Companion']/method[@name='setCurrentAccessToken' and count(parameter)=1 and parameter[1][@type='com.facebook.AccessToken']]/parameter[1]" />' matched no nodes.

@mos379
Copy link
Author

mos379 commented May 2, 2022

I think I understand most of it now and I updated the mappings for the "core" project.
@Redth Could you have a look or someone else?

@mos379
Copy link
Author

mos379 commented May 8, 2022

@SotoiGhost looks like You are the only one maintaining this repo.
Any chance to have a look at my code and questions?

@sereoja
Copy link

sereoja commented May 18, 2022

Hi there, are any experts looking into this? Facebook put us on notice if we don't fix Facebook Login issue on Android 12 we are going to be denied service, our plugins rely on your binding. Please update. thx.

@sereoja
Copy link

sereoja commented May 18, 2022

I'm trying to build as is from source code but it surprisingly fails, does anyone know what am I missing? bellow are the errors I get:
Error: Error(s) occurred when compiling build script:
/Users/sungureanu/Developer/FaceBook/Facebook.iOS/build.cake(92,2): error CS0103: The name 'CocoaPodRepoUpdate' does not exist in the current context
/Users/sungureanu/Developer/FaceBook/Facebook.iOS/common.cake(71,2): error CS0103: The name 'CocoaPodInstall' does not exist in the current context
/Users/sungureanu/Developer/FaceBook/Facebook.iOS/common.cake(142,3): error CS0103: The name 'XCodeBuild' does not exist in the current context
/Users/sungureanu/Developer/FaceBook/Facebook.iOS/common.cake(142,18): error CS0246: The type or namespace name 'XCodeBuildSettings' could not be found (are you missing a using directive or an assembly reference?)
/Users/sungureanu/Developer/FaceBook/Facebook.iOS/common.cake(183,3): error CS0103: The name 'XCodeBuild' does not exist in the current context
/Users/sungureanu/Developer/FaceBook/Facebook.iOS/common.cake(183,19): error CS0246: The type or namespace name 'XCodeBuildSettings' could not be found (are you missing a using directive or an assembly reference?)
Error: .NET CLI: Process returned an error (exit code 1).

@mos379
Copy link
Author

mos379 commented May 18, 2022

@sereoja that's why I worked quite a bit to update to the Android 12 and SDK update, as there is a breaking bug in the SDK 11.
Unfortunately @SotoiGhost is only working on iOS and no one else with rights to this project seems to look into this.

In one of my projects I disabled Android 12 Facebook login and sign up, so that Facebook allows my apps to use FB login on other devices...

@mos379
Copy link
Author

mos379 commented May 18, 2022

@SotoiGhost could you post the Pipeline logs here so I can figure out why they are failing?

@sereoja
Copy link

sereoja commented May 18, 2022

@mos379 when running it locally I get this for Android:
4 Error(s)

Time Elapsed 00:00:04.20
An error occurred when executing task 'libs'.

"/Users/sungureanu/Downloads/temp/Facebook.Android/source/Xamarin.Facebook.sln" (Build target) (1:2) ->
"/Users/sungureanu/Downloads/temp/Facebook.Android/source/facebook-common/facebook-common.csproj" (default target) (3:14) ->
"/Users/sungureanu/Downloads/temp/Facebook.Android/source/facebook-common/facebook-common.csproj" (Build target) (3:16) ->
(CoreCompile target) ->
/Users/sungureanu/Downloads/temp/Facebook.Android/source/facebook-common/obj/Release/monoandroid12.0/generated/src/Xamarin.Facebook.Share.Widget.ShareDialog.cs(10,91): error CS0535: 'ShareDialog' does not implement interface member 'ISharer.ShouldFailOnDataError' [/Users/sungureanu/Downloads/temp/Facebook.Android/source/facebook-common/facebook-common.csproj]
/Users/sungureanu/Downloads/temp/Facebook.Android/source/facebook-common/obj/Release/monoandroid12.0/generated/src/Xamarin.Facebook.Login.NativeAppLoginMethodHandler.cs(265,23): error CS0533: 'NativeAppLoginMethodHandler.TryAuthorize(LoginClient.Request)' hides inherited abstract member 'LoginMethodHandler.TryAuthorize(LoginClient.Request)' [/Users/sungureanu/Downloads/temp/Facebook.Android/source/facebook-common/facebook-common.csproj]
/Users/sungureanu/Downloads/temp/Facebook.Android/source/facebook-common/obj/Release/monoandroid12.0/generated/src/Xamarin.Facebook.Login.NativeAppLoginMethodHandler.cs(304,25): error CS0534: 'NativeAppLoginMethodHandlerInvoker' does not implement inherited abstract member 'LoginMethodHandler.TryAuthorize(LoginClient.Request)' [/Users/sungureanu/Downloads/temp/Facebook.Android/source/facebook-common/facebook-common.csproj]
/Users/sungureanu/Downloads/temp/Facebook.Android/source/facebook-common/obj/Release/monoandroid12.0/generated/src/Xamarin.Facebook.Login.KatanaProxyLoginMethodHandler.cs(10,30): error CS0534: 'KatanaProxyLoginMethodHandler' does not implement inherited abstract member 'LoginMethodHandler.TryAuthorize(LoginClient.Request)' [/Users/sungureanu/Downloads/temp/Facebook.Android/source/facebook-common/facebook-common.csproj]

@skir
Copy link

skir commented May 19, 2022

@sereoja I get the same errors too.
@mos379 any advices on how to build this library locally, while this pull request is open?

@mos379
Copy link
Author

mos379 commented May 19, 2022

@skir @sereoja did you try to build my main or the main of this project?

@skir
Copy link

skir commented May 19, 2022

@mos379 I tried to build your main.

@sereoja
Copy link

sereoja commented May 19, 2022

Hi, if you're interested in "Login with Facebook" feature only, you may try using this plugin https://www.nuget.org/packages/Xam.Facebook.Login.Android/
https://www.nuget.org/packages/Xam.Facebook.Core.Android/
https://www.nuget.org/packages/Xam.Facebook.Common.Android/
I've stripped all other facebook features since those were causing build issues and left only Login, and keep in mind the intent is to get us unstuck for now but I encourage to keep updating Xamarin.FacebookComponents to keep this great plugin alive.

@jfversluis
Copy link
Member

jfversluis commented May 30, 2022

The build errors seems to be

/Users/runner/work/1/s/Facebook.Android/source/facebook-common/obj/Release/monoandroid12.0/generated/src/Xamarin.Facebook.Login.NativeAppLoginMethodHandler.cs(265,23): error CS0533: 'NativeAppLoginMethodHandler.TryAuthorize(LoginClient.Request)' hides inherited abstract member 'LoginMethodHandler.TryAuthorize(LoginClient.Request)' [/Users/runner/work/1/s/Facebook.Android/source/facebook-common/facebook-common.csproj]
/Users/runner/work/1/s/Facebook.Android/source/facebook-common/obj/Release/monoandroid12.0/generated/src/Xamarin.Facebook.Login.NativeAppLoginMethodHandler.cs(304,25): error CS0534: 'NativeAppLoginMethodHandlerInvoker' does not implement inherited abstract member 'LoginMethodHandler.TryAuthorize(LoginClient.Request)' [/Users/runner/work/1/s/Facebook.Android/source/facebook-common/facebook-common.csproj]
/Users/runner/work/1/s/Facebook.Android/source/facebook-common/obj/Release/monoandroid12.0/generated/src/Xamarin.Facebook.Login.KatanaProxyLoginMethodHandler.cs(10,30): error CS0534: 'KatanaProxyLoginMethodHandler' does not implement inherited abstract member 'LoginMethodHandler.TryAuthorize(LoginClient.Request)' [/Users/runner/work/1/s/Facebook.Android/source/facebook-common/facebook-common.csproj]
/Users/runner/work/1/s/Facebook.Android/source/facebook-common/obj/Release/monoandroid12.0/generated/src/Xamarin.Facebook.Share.Widget.ShareDialog.cs(10,91): error CS0535: 'ShareDialog' does not implement interface member 'ISharer.ShouldFailOnDataError' [/Users/runner/work/1/s/Facebook.Android/source/facebook-common/facebook-common.csproj]

@MrAugMyo
Copy link

mos379:main

@MrAugMyo
Copy link

gh pr checkout 237

@Transatranticism
Copy link

Has anyone successfully logged in by installing the following packages?
Actually I couldn't log in.

https://www.nuget.org/packages/Xam.Facebook.Login.Android
https://www.nuget.org/packages/Xam.Facebook.Core.Android
https://www.nuget.org/packages/Xam.Facebook.Common.Android

@DamienDoumer
Copy link

Is anyone here ? Will this fix be merged one day ? apps have been crashing in prod

@DamienDoumer
Copy link

@Transatranticism I suceeded in using https://www.nuget.org/packages/Xam.Facebook.Login.Android only for loging users in. I removed the SDK built by Microsoft, and used that one instead. It required a few modifications, but wasn't difficult.

@profilen
Copy link

profilen commented Dec 8, 2022

If you only need to support facebook-login perhaps you can try out the WebAuthenticator. Worked out well for me.

https://learn.microsoft.com/en-us/xamarin/essentials/web-authenticator?tabs=android

@mos379
Copy link
Author

mos379 commented Dec 8, 2022

If you only need to support facebook-login perhaps you can try out the WebAuthenticator. Worked out well for me.

https://learn.microsoft.com/en-us/xamarin/essentials/web-authenticator?tabs=android

As far as I recall this is no longer allowed by FB policies... You have to have native login.

@profilen
Copy link

profilen commented Dec 8, 2022

If you only need to support facebook-login perhaps you can try out the WebAuthenticator. Worked out well for me.
https://learn.microsoft.com/en-us/xamarin/essentials/web-authenticator?tabs=android

As far as I recall this is no longer allowed by FB policies... You have to have native login.

I know about the Webview limitation but I have tried it out and it seems to be working. The WebAuthentication is apparently using Android CustomTabs.

This is a quite new Ms-response
https://learn.microsoft.com/en-us/answers/questions/1068276/xamarin-forms-facebook-login-using-custom-tab.html

CustomTabs mentioned here
https://developers.facebook.com/docs/facebook-login/android/deprecating-webviews

@mmilkovski
Copy link

Hi, if you're interested in "Login with Facebook" feature only, you may try using this plugin https://www.nuget.org/packages/Xam.Facebook.Login.Android/
https://www.nuget.org/packages/Xam.Facebook.Core.Android/
https://www.nuget.org/packages/Xam.Facebook.Common.Android/
I've stripped all other facebook features since those were causing build issues and left only Login, and keep in mind the intent is to get us unstuck for now but I encourage to keep updating Xamarin.FacebookComponents to keep this great plugin alive.

I can auth with FB using these nugets after removing official one

@patkozlowski
Copy link

Hi, if you're interested in "Login with Facebook" feature only, you may try using this plugin https://www.nuget.org/packages/Xam.Facebook.Login.Android/
https://www.nuget.org/packages/Xam.Facebook.Core.Android/
https://www.nuget.org/packages/Xam.Facebook.Common.Android/
I've stripped all other facebook features since those were causing build issues and left only Login, and keep in mind the intent is to get us unstuck for now but I encourage to keep updating Xamarin.FacebookComponents to keep this great plugin alive.

I can auth with FB using these nugets after removing official one

Be sure to add the client token in manifest as well. I was on an older version, but upgrading to this fix worked for me too, and able to log in.
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>

@ivanoikon
Copy link

ivanoikon commented Apr 13, 2023

Thanks for that @sereoja. I'm using that version and it works perfectly if Facebook app is installed but for some reason it doesn't work when login is completed using webview. Login page is opened and login seems to complete but when it comes back to the app nothing happens because OnActivityResult or ICallbackManager are never called.
Also, when webview opens there are some errors like

Rejecting re-init on previously-failed class java.lang.Class<Gg2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/PacProcessor;

Any ideas?

@sereoja
Copy link

sereoja commented Apr 13, 2023

Thanks for that @sereoja. I'm using that version and it works perfectly if Facebook app is installed but for some reason it doesn't work when login is completed using webview. Login page is opened and login seems to complete but when it comes back to the app nothing happens because OnActivityResult or ICallbackManager are never called. Also, when webview opens there are some errors like

Rejecting re-init on previously-failed class java.lang.Class<Gg2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/PacProcessor;

Any ideas?

Here how I did it, hope it helps:

` private readonly IFacebookClient _facebookService;

in ctr:
_facebookService = CrossFacebookClient.Current;

in OnLogin Method:
try
{
if (_facebookService.IsLoggedIn)
{
_facebookService.Logout();
}

            async void userDataDelegate(object sender, FBEventArgs<string> e)
            {
                if (e == null)
                {
                    return;
                }

                switch (e.Status)
                {
                    case FacebookActionStatus.Completed:
                        var facebookProfile = await Task.Run(() => JsonConvert.DeserializeObject<FacebookProfile>(e.Data));
                        if (string.IsNullOrWhiteSpace(facebookProfile.Email))
                        {
                            Device.BeginInvokeOnMainThread(() =>
                            {
                                LoginMsgLbl = "Your social account does not contain an email, an email is required to continue";
                            });
                        }
                        else if (string.IsNullOrWhiteSpace(facebookProfile.Id))
                        {
                            Device.BeginInvokeOnMainThread(() =>
                            {
                                LoginMsgLbl = "Facebook failed to provide authorization ID please try again.";
                            });
                        }
                        else
                        {
                            var socialLoginData = new NetworkAuthData
                            {
                                Email = facebookProfile.Email,
                                FullName = $"{facebookProfile.FirstName} {facebookProfile.LastName}",
                                FirstName = facebookProfile.FirstName,
                                LastName = facebookProfile.LastName,
                                Id = facebookProfile.Id,
                                Provider = SocialProvider.FaceBook
                            };
                            if (facebookProfile is not null)
                            {
                                await SocialLogIn(socialLoginData);
                            }
                        }
                        break;
                    case FacebookActionStatus.Canceled:
                        break;
                    case FacebookActionStatus.Error:
                        await _userDialog.AlertAsync("Error", "Facebook Auth", "Ok");
                        break;
                    case FacebookActionStatus.Unauthorized:
                        await _userDialog.AlertAsync("Unauthorized", "Facebook Auth", "Ok");
                        break;
                }
                SpinnerIsRunning = false;
                _facebookService.Logout();
                _facebookService.OnUserData -= userDataDelegate;
            }

            _facebookService.OnUserData += userDataDelegate;

            string[] fbRequestFields = { "email", "first_name", "last_name" };
            string[] fbPermisions = { "email" };
            await _facebookService.RequestUserDataAsync(fbRequestFields, fbPermisions);
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.ToString());
            SpinnerIsRunning = false;
        }`

@ivanoikon
Copy link

ivanoikon commented Apr 14, 2023

@sereoja it seems you do not use your Nuget packages, so what library you use? I don't need to get facebook user data, i need to log in without Facebook app installed :)

@sereoja
Copy link

sereoja commented Apr 14, 2023

@sereoja it seems you do not use your Nuget packages, so what library you use? I don't need to get facebook user data, i need to log in without Facebook app installed :)

you are right, I use this plugin in another plugin, if you want you can look at it, hope it helps:

https://github.com/CrossGeeks/FacebookClientPlugin/blob/master/src/Plugin.FacebookClient/FacebookClientManager.android.cs

@ivanoikon
Copy link

@sereoja Thank you now it's working ;)

@alexshikov
Copy link

alexshikov commented Oct 3, 2023

Any news on this? Would be nice to have an official package working.

@rudnicki-insys
Copy link

bump

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.