2017-05-29 98 views
0

我正在使用xamarin和Google Licensing的插件端口開發應用程序。我無法使它工作......我設置了3個測試人員在開發者控制檯(包括我自己)中回覆許可,並在這些帳戶上收到NotLicenced響應...甚至使用我的發佈者帳戶登錄。Xamarin Google授權響應混淆了

他是我使用的插件: https://github.com/mattleibow/Android.Play.ExpansionLibrary

這是我使用的代碼:我已經修復了所有應用程序的錯誤訊息,首先嚐試(權限內

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); 
} 

然後NotMarketManaged),現在我堅持得到NotLicensed ...

因此,通信正在工作,只是許可證響應沒有迴應,因爲它應該是許可證測試中列出的電子郵件。

所以..更多的測試它有點奇怪...我已經設置了ERROR_NON_MATCHING_UID作爲測試人員的默認響應,它確實回覆了確切的錯誤....但是當我改回許可時,我得到了NOT_LICENSED響應。 ..

之後,它得到了這樣的陌生人......我打得有點與應對方案,這是什麼樣的回答,我從谷歌授權服務器有:

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 

所以...任何人都可以解釋發生了什麼?我使用的插件是否錯誤地分析了代碼?

我檢查插件代碼,這就是我發現它使用這些響應代碼:

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

任何人都可以確認,如果這些都是正確的代碼,谷歌許可的答覆?

回答

1

Java的LicenseValidator.java基於谷歌從播放值許可庫,版本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; 

它們匹配從C#Android.Play.ExpansionLibrary

+0

這樣的代碼是正確的的...谷歌的許可是造成這個? 我發現這個老帖子沒有解決方案... https://stackoverflow.com/questions/13664857/android-license-test-response-never-works?rq=1 – rickrvo

+0

我只想指出新的綁定官方Java庫:https://github.com/xamarin/XamarinComponents/tree/master/Android/GoogleAndroidVending – Matthew