fetchIOS function
Implementation
Future<AppVersionData> fetchIOS(
{PackageInfo? packageInfo, String? appleId, String? country}) async {
assert(appleId != null || packageInfo != null,
'One between appleId or packageInfo must not be null');
var parameters = (appleId != null)
? {"id": appleId}
: {'bundleId': packageInfo?.packageName};
if (country != null) {
parameters['country'] = country;
}
parameters['version'] = '2';
var uri = Uri.https(appleStoreAuthority, '/lookup', parameters);
final response = await http.get(uri, headers: headers);
if (response.statusCode == 200) {
final jsonResult = json.decode(response.body);
final List results = jsonResult['results'];
if (results.isEmpty) {
throw "Application not found in Apple Store, verify your app id.";
} else {
return AppVersionData(
storeVersion: jsonResult['results'].first['version'],
storeUrl: jsonResult['results'].first['trackViewUrl'],
localVersion: packageInfo?.version,
targetPlatform: TargetPlatform.iOS);
}
} else {
return throw "Application not found in Apple Store, verify your app id.";
}
}