Создание приложения, которое использует файлы расширения без учетной записи издателя
Я только начинаю разрабатывать для Android, и у меня нет лицензии разработчика Google Play. Для моего приложения я должен использовать APK файлы расширения.
Я пытался применить код downloader_sample, который содержится в play_apk_expansion, но получить InvalidKeySpecException, брошенный этим методом
private static PublicKey generatePublicKey(String encodedPublicKey) {
try {
byte[] decodedKey = Base64.decode(encodedPublicKey);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_FACTORY_ALGORITHM);
return keyFactory.generatePublic(new X509EncodedKeySpec(decodedKey));
} catch (NoSuchAlgorithmException e) {
// This won't happen in an Android-compatible environment.
throw new RuntimeException(e);
} catch (Base64DecoderException e) {
Log.e(TAG, "Could not decode from Base64.");
throw new IllegalArgumentException(e);
} catch (InvalidKeySpecException e) {
Log.e(TAG, "Invalid key specification.");
throw new IllegalArgumentException(e);
}
}
Также у меня есть
public class SampleDownloaderService extends DownloaderService {
// You must use the public key belonging to your publisher account
public static final String BASE64_PUBLIC_KEY = "MyLVLKey";
// You should also modify this salt
public static final byte[] SALT = new byte[] { 1, 42, -12, -1, 54, 98,
-100, -12, 43, 2, -8, -4, 9, 5, -106, -107, -33, 45, -1, 84
};
Как я могу протестировать свое приложение без реальной учетной записи издателя?
1 ответ
В примере кода для проекта APK Expansion есть специальная проверка наличия файла перед вызовом функций загрузчика. Убедитесь, что ваш файл на месте на SD-карте и получите к нему доступ напрямую.
Чтобы использовать встроенный загрузчик как есть, вам потребуется учетная запись издателя, поскольку файлы размещаются в Google Play. С небольшими изменениями вы можете использовать загрузчик для загрузки из любого места, например, с локального сервера.