μ΄λ² κΈμμλ λ°°ν¬λ μ±μ νμ¬ λ²μ μ κ°μ Έμ€λ λ°©λ²μ λν΄μ κ°λ³κ² μμ보λλ‘ νκ² λ€.
λ°°ν¬λ μ±μ λ²μ μ μ νμΈν΄μΌ ν κΉ ?
μ΅κ·Όμ λλΆλΆμ μ±μ λ§μ΄νμ΄μ§λ μ€μ νμ΄μ§ λ±μμ νμ¬ λ§μΌμ λ°°ν¬λ μ΅μ λ²μ μ λ²μ μ 보μ¬μ£Όκ±°λ, μ΅μ λ²μ μΌλ‘ μ λ°μ΄νΈλ₯Ό λ°λλ‘ νκΈ° μν κΈ°λ₯μ μ 곡νκ³ μλ€.
μ΄λ¬ν λ²μ μ 보λ λ°°ν¬λ μ±μ λ²μ μ μλ²μ μ μ₯νμ¬ νμΈν μλ μκ³ , λ‘컬 μ μ₯μμ μ μ₯ ν μνκ΄λ¦¬λ₯Ό ν μλ μλ€.
νμ§λ§ μ±μ μ΅μ λ°°ν¬λ λ²μ μ λ³λλ‘ κ΄λ¦¬νκ² λλ©΄ λ¬Έμ μ μ΄ μλλ°, μ€ν μ΄μ μ΅μ λ²μ μ΄ λ°°ν¬κ° μλ κ²½μ°κ° μκΈ° λλ¬Έμ λ¬Έμ μ μ΄ μκΈ΄λ€.
λ°°ν¬λ μ±μ΄ μ μ€ν μ΄μ λ°°ν¬κ° μλ κ²½μ°κ° λ°μν κΉ ?
ꡬκΈκ³Ό μ νμ μ체 μ€ν μ΄μ μ±μ΄ μ¦μ λ°°ν¬λμ§ μμ μ μλ€λ μλ΄λ₯Ό νκ³ μλ€. μλλ‘μ΄λμ κ²½μ° μ΅λ 7μΌκΉμ§ λ°°ν¬κ° λλ©°, μ νμ 24μκ° λ΄μλ μ€ν μ΄μ λ°°ν¬κ° λλ€.
μ΅κ·Ό λ°°ν¬λ λ²μ μ 1.0.1 λ²μ μ΄λΌκ³ νκ³ , μ΄ λ²μ μ 보λ₯Ό μλ²μμ κ΄λ¦¬ νμλ€κ³ νμ. 1.0.1 λ²μ μ λͺ¨λ μ¬μ©μμκ² μ 곡νκΈ° μν΄ κ°μ λ‘ μ λ°μ΄νΈλ₯Ό λ°μ μ μλλ‘ νκ³ μΆμ΄μ, νμ¬ λ²μ μ΄ 1.0.1 λ²μ μ΄ μλ μ¬μ©μλ μ±μ μ§μ μ λ§κ³ μ λ°μ΄νΈλ₯Ό νλλ‘ νμλ€.
μ
λ°μ΄νΈλ₯Ό ν μ μκ² μ€ν μ΄λ‘ μ΄λμν€κ² λλλ°, μ€ν μ΄μλ μ΅μ λ²μ μ μ±μ΄ λ°°ν¬ λμ μλ μλμ μλ μκΈ° λλ¬Έμ λ°°ν¬κ° μμ§ μλ κ²½μ°λΌλ©΄ 무ν 루νμ λΉ μ§κ² λμ΄ μμ’μ μ¬μ©μ κ²½νμ μ 곡νκ² λλ€.
μ±μμλ μ€ν μ΄λ‘ μ€ν μ΄μλ μ
λ°μ΄νΈ λ²νΌμ΄ μκ³ μ΄κΈ° λ²νΌλ§ μμ΄μ λ€μ μ΄κΈ°λ₯Ό λλ₯΄λ©΄ μ±μΌλ‘ μ±μ λ€μ μ€ν μ΄λ‘...
μ΄λ¬ν λ¬Έμ λ€μ μμ¨ μ μλ λ°©λ²μ νμ¬ λ³ΈμΈμ λλ°μ΄μ€μμ μ°Ύμ μ μλ μ΅μ μ± μ 보λ₯Ό κ°μ Έμμ νμΈν΄ 보λ λ°©λ²μ΄ κ°μ₯ μμ νλ€.
Flutterλ μ±μ€ν μ΄μ νλ μ΄μ€ν μ΄ λͺ¨λ νμΈν΄μΌ νκΈ° λλ¬Έμ κ°κ°μ μΉνμ΄μ§μ μ 보λ₯Ό http ν΅μ μΌλ‘ κ°μ Έμ λ²μ μ 보λ₯Ό νμ±ν΄μ μ¬μ©ν μ μλ€.
μ 보λ₯Ό νμ±νλ λ°©λ²μ μ λ§ λ€μνκ² λ§μλ°, μ€λ«λμ μ¬μ©ν λ°©μμΌλ‘ μλ €λ리λλ‘ νκ² λ€.
νλ μ΄μ€ν μ΄μ κ²½μ° μ΄μμ νλ©΄μ λ²μ μ κ°μ§κ³ μ€μ§ λͺ»νλ λ¬Έμ κ° λ§κ³ , μΉμ¬μ΄νΈμ UI κ΅¬μ‘°κ° λ³κ²½ λλ©΄μ, κ·Έλλ§λ€ λ§€λ² μλ νμ± κ·μΉμ λ³κ²½ν΄μΌ νμλλ°, μλ 곡μ λ μ½λλ μ€λμκ° λμ λ³κ²½ μμ΄ μ μ¬μ©νκ³ μλ€.
νΈμΆ μ£Όμμ id λΆλΆμ λ³ΈμΈμ μλΉμ€μ ν΄λΉνλ Package Nameμ λ£μ΄μ£Όλ©΄ λλ€.
Future<String?> currentStoreVersion(String packageName) async {
try {
final http.Response _response = await http.get(Uri.parse(
"https://play.google.com/store/apps/details?id=$packageName&gl=US"));
if (_response.statusCode == 200) {
RegExp regexp =
RegExp(r'\[\[\[\"(\d+\.\d+(\.[a-z]+)?(\.([^"]|\\")*)?)\"\]\]');
String? _version = regexp.firstMatch(_response.body)?.group(1);
return _version;
}
} catch (e) {
return null;
}
return null;
}
μ νμ κ²½μ°λ μ무 λ¬Έμ μμ΄ μ μ¬μ©νκ³ μμΌλ©°, ν΄λΉνλ μλΉμ€μ Bundle IDλ₯Ό λ£μ΄μ£Όλ©΄ λλ€.
Future<String?> currentStoreVersion(String bundleId) async {
try {
Uri _uri = Uri.https(
"itunes.apple.com",
"/lookup",
{"bundleId": bundleId},
);
final Response _response = await _dio.get(_uri.toString());
if (_response.statusCode == 200) {
final jsonObj = json.decode(_response.data);
String? _version = jsonObj['results'][0]['version'];
return _version;
}
} catch (e) {
return null;
}
return null;
}
μ€ν μ΄μμ λ°°ν¬λ μ±μ μ΅μ λ²μ μ κ°μ Έμ€λ λ°©λ²μ λν΄μ κ°λ¨νκ² μ΄ν΄λ΄€λ€.
곡μ ν λ°©μμΌλ‘ λ²μ μ 보λ₯Ό κ°μ Έμ€μ§ λͺ»νκ±°λ μΉμ κ°νΈμ΄λ λ³κ²½μΌλ‘ κ°μ Έμ€μ§ λͺ»ν μλ μμΌλ λκΈ λ¨κ²¨μ£Όμλ©΄ νμΈν΄λ³΄λλ‘ νκ² λ€.
κ°μ¬ν©λλ€.