Я разработал приложение с несколькими вариантами сборки, такими как dev, test, prod, поэтому, когда я использую API проверки смс, я могу читать смс только в режиме prod, но не в другом режиме, я убедился, что ха sh то, что отправляется на сервер, отличается для другой разновидности сборки, и сервер также отправляет тот же га sh в смс, который отправляется приложением, но проблема в том, что приемник API проверки смс способен читать смс для расширения сборки Prod, а не для другого варианта сборки.
Код варианта сборки
flavorDimensions "version"
productFlavors {
gamma {
dimension "version"
applicationId "packagename.test"
versionNameSuffix "-test"
}
api2 {
dimension "version"
applicationId "packagename.dev"
versionNameSuffix "-dev"
}
prod {
dimension "version"
applicationId "packagename"
}
}
код для генерации ха sh
public ArrayList<String> getAppSignatures() {
ArrayList<String> appSignaturesHashs = new ArrayList<>();
try {
// Get all package details
String packageName = getPackageName();
PackageManager packageManager = getPackageManager();
Signature[] signatures = packageManager.getPackageInfo(packageName,
PackageManager.GET_SIGNATURES).signatures;
for (Signature signature : signatures) {
String hash = hash(packageName, signature.toCharsString());
if (hash != null) {
appSignaturesHashs.add(String.format("%s", hash));
}
}
} catch (Exception e) {
Log.e(TAG, "Package not found", e);
}
return appSignaturesHashs;
}
@TargetApi(19)
private static String hash(String packageName, String signature) {
String appInfo = packageName + " " + signature;
try {
MessageDigest messageDigest = MessageDigest.getInstance(HASH_TYPE);
messageDigest.update(appInfo.getBytes(StandardCharsets.UTF_8));
byte[] hashSignature = messageDigest.digest();
// truncated into NUM_HASHED_BYTES
hashSignature = Arrays.copyOfRange(hashSignature, 0, NUM_HASHED_BYTES);
// encode into Base64
String base64Hash = Base64.encodeToString(hashSignature, Base64.NO_PADDING | Base64.NO_WRAP);
base64Hash = base64Hash.substring(0, NUM_BASE64_CHAR);
return base64Hash;
} catch (NoSuchAlgorithmException e) {
Log.e(TAG, "No Such Algorithm Exception", e);
}
return null;
}
Любое предложение или помощь будут будь великим.