#android #build #apk #release #android-applicationinfo
#Android #сборка #apk #выпуск #android-applicationinfo
Вопрос:
Можете ли вы бесплатно выпустить тот же APK-файл в Индии и оплатить в некоторых других странах?
Если да, то как?
Я искал и обнаружил, что нам нужно выпустить два разных apk для аналогичной ситуации.
Комментарии:
1. Вы проверяли, возможно ли это с Android-приложениями?
2. @p.mathew13 не могли бы вы уточнить. я работал со вкусами, но не в этом случае.
3. Даже мои знания о вкусах очень малы. Я думал, что это будет возможно с ароматами и пакетом приложений
Ответ №1:
Вы можете использовать много подходов, но я не думаю, что вы сможете использовать один и тот же APK для обеих целей из-за того, как работает Google Play Store. Я считаю, что покупки в приложении — это самое близкое, что вы можете получить для распространения одного и того же APK в разных регионах (бесплатно и платно). Это означает, что вам нужно будет самостоятельно определять, когда пользователь должен платить за ваше приложение … и именно здесь возникает проблема … зная, из какой страны ваш пользователь.
Подход, которому я бы последовал, заключается в создании 2 APK с минимальными усилиями путем создания двух вариантов продукта (бесплатный, платный). Опять же, используя этот подход, вы получите ДВА APK, но, насколько мне известно, это наиболее эффективный способ достижения вашей цели распространения.
Причина, по которой я считаю этот подход более эффективным, заключается в том, что вам не нужно добавлять много вычислений в код для определения страны устройства. На самом деле, независимо от того, какой метод вы используете для определения страны устройства (или пользователя), вы почти никогда не сможете ничего сделать с этой информацией. Местоположение GPS не является хорошим показателем (пользователь может быть индийским туристом в Испании или испанским туристом в Индии), услуги телефонии также не будут доступны для телефонов или планшетов без SIM-карт. По этой причине я сосредоточу свой ответ на двух вариантах продукта и создании двух APK.
Чтобы создать эти два варианта продукта, вам нужно объявить их в gradle…
android {
flavorDimensions "version"
productFlavors {
free {
dimension "version"
applicationIdSuffix ".free"
versionNameSuffix "-free"
}
paid {
dimension "version"
applicationIdSuffix ".paid"
versionNameSuffix "-paid"
}
}
}
Приведенное выше объявление просто сообщает Android Studio, что приложение использует два варианта продукта (бесплатный и платный) и что applicationId
(и название версии) будет дополнено именем вкуса.
Это необходимо, потому что вы будете генерировать два APK.
Следует отметить, что все вкусы продуктов будут «наследовать» настройки, определенные в defaultConfig
разделе, поэтому вы должны определить все распространенные конфигурации в defaultConfig
Теперь, когда вы синхронизируете проект, Android Studio создаст варианты сборки на основе этих вкусов продукта. Вот пример одного из моих проектов, в котором НЕ используются вкусы продукта…
Это просто использование обычных типов сборки debug / release, но если бы я настроил упомянутые выше варианты продукта, вы бы увидели здесь 4 варианта сборки:
- freeDebug
- Бесплатный выпуск
- Платная ошибка
- Платный релиз
Теперь, когда вы переключаете варианты сборки, вы можете предоставлять разные реализации классов, разные ресурсы и т. Д. И, что наиболее важно, Вы будете генерировать разные APK для каждого варианта сборки при сборке (или упаковке) своего приложения.
Таким образом, вы получите бесплатный APK-релиз и платный APK-релиз, которые вы можете быстро распространять в Google Play. Может показаться, что у вас два разных приложения, но на самом деле (с точки зрения разработки) это почти одно и то же приложение, разработанное с использованием вкусов продуктов, и усилия по созданию этих двух приложений минимальны!!!
Имея в виду все вышесказанное, вы можете видеть, что «довольно легко»:
- Добавляйте подписки или покупки в приложении только к одному вкусу / варианту (платному)
- Распространяйте бесплатное приложение в Индии
- Распространяйте платные приложения по всему миру
Теперь я действительно не знаю, есть ли простой способ достичь последнего пункта (3) … распространение в Google Play во всех странах, кроме одной (Индия). Выбор одной страны за раз может оказаться непростой задачей
Комментарии:
1. @AmitVaghela действительно сложно охватить все аспекты этой темы, потому что контекст довольно широкий. Но я обновил свой ответ дополнительной информацией о том, как вы можете воспользоваться преимуществами вкусов продуктов. Это должно дать вам лучшее понимание для начала
2. я подумал, что если один APK-файл может служить обеим целям, это будет хорошо, и я хочу выпустить релиз с одним APK.
3. @AmitVaghela Я не знаю, кажется, что это требует больших усилий, чтобы заставить его работать, а затем возникает другая проблема … как и когда определить, является ли текущая установка бесплатной или платной …? Я бы определенно использовал ароматы, что имеет большой смысл, учитывая «ограничения» в рамках и платформе распространения