2017-05-29 3 views
0

Ich entwickle eine App mit Xamarin und einem Plug-in-Port von Google Licensing. Und ich kann es nicht zur Arbeit bringen ... Ich habe 3 Tester eingestellt, um in der Entwicklerkonsole (einschließlich mir selbst) zu antworten, und auf diesen Konten bekomme ich NotLicensed Response ... Sogar mit meinem Publisher-Account eingeloggt.Xamarin Google Lizenzantwort gemischt

sein ist das Plugin ich verwende: https://github.com/mattleibow/Android.Play.ExpansionLibrary

Dies ist der Code Ich verwende:

bool internet = Task.Run(CheckNET).Result; 

// Construct the LicenseChecker with a policy. 
var obfuscator = new AesObfuscator(Salt, this.PackageName, Android.Provider.Settings.Secure.GetString(ContentResolver, Android.Provider.Settings.Secure.AndroidId)); 
var policy = new ServerManagedPolicy(this, obfuscator); 
this.checker = new LicenseChecker(this, policy, "Here is my API public key"); 

if (internet) 
{ 
    checker.CheckAccess(this); 
} 

ich alle Anwendungsfehlermeldungen in innerhalb der ersten Versuche festgelegt haben (Berechtigungen und dann NotMarketManaged) und jetzt werde ich notLicensed ...

So die Kommunikation funktioniert, nur die Lizenzantwort kommt nicht zurück, wie es sein sollte für die E-Mails in Lizenz Testing aufgeführt.

Also ... mit mehr testen es ein bisschen seltsam ... Ich habe ERROR_NON_MATCHING_UID als Standardantwort für Tester festgelegt und es hat genau diesen Fehler geantwortet .... aber als ich zurück zu Lizenz geändert habe, bekam ich NOT_LICENSED Antwort. ..

Danach wurde es Art und Weise Fremder ... ich habe ein bisschen mit den Antwortoptionen gespielt und das ist, was ich Antworten von Google Licensing Server bekam:

Google Console set to:    Server Response: 
Licensed       Not_licensed 
Licensed_old_Key     Not_Licensed 
Not_Licensed      Not_licensed 
Error_server_failuere    LICENSED 
Error_contacting_server    Licensed 
Error_invalid_packagename   InvalidPackageName 
error_nonmatching_uid    NonMatchingUid 

so ... kann jemand erklären, was vor sich geht? Könnte das Plugin, das ich verwende, die Codes falsch analysieren?

Ich habe das Plugin-Code überprüft und das ist, was ich fand, dass es diese Antwortcodes verwendet:

Licensed = 0x0, 
NotLicensed = 0x1, 
LicensedOldKey = 0x2, 
NotMarketManaged = 0x3, 
ServerFailure = 0x4, 
OverQuota = 0x5, 
ErrorContactingServer = 0x101, 
InvalidPackageName = 0x102, 
NonMatchingUid = 0x103 

kann jeder bestätigen, wenn diese die richtigen Codes, dass Google Licensing Antworten sind?

Antwort

1

Die Java LicenseValidator.java basierte Werte von Google Play-Bibliothek Lizenzierung, rev 2:

// Server response codes. 
private static final int LICENSED = 0x0; 
private static final int NOT_LICENSED = 0x1; 
private static final int LICENSED_OLD_KEY = 0x2; 
private static final int ERROR_NOT_MARKET_MANAGED = 0x3; 
private static final int ERROR_SERVER_FAILURE = 0x4; 
private static final int ERROR_OVER_QUOTA = 0x5; 

private static final int ERROR_CONTACTING_SERVER = 0x101; 
private static final int ERROR_INVALID_PACKAGE_NAME = 0x102; 
private static final int ERROR_NON_MATCHING_UID = 0x103; 

Sie passen die, die aus dem C# Android.Play.ExpansionLibrary

+0

so die Codes korrekt sind ... google Lizenzierung ist für die Schuld Dies? Ich fand diese alte Post ohne Lösung ... https://stackoverflow.com/questions/13664857/android-license-test-response-never-works?rq=1 – rickrvo

+0

Ich möchte nur auf die neuen Bindungen hinweisen der offiziellen Java-Bibliothek: https://github.com/xamarin/XamarinComponents/tree/master/Android/GoogleAndroidVending – Matthew

Verwandte Themen