Closed NTMS2017 closed 4 years ago
I follow your ITunesSearchAPI Example instruction and I got no result. Than I use UpgradeAlert to get info for iOS and got another error as shown below;
UpgardeAlert code and error:
return Scaffold(
key: _scaffoldKeyLogin,
backgroundColor: Colors.grey[200],
body: UpgradeAlert(
child: Center(child: Text('Checking...')),
)
);
flutter: upgrader.ITunesResults.version: RangeError (index): Invalid value: Valid value range is empty: 0
flutter: upgrader.ITunesResults.trackViewUrl: RangeError (index): Invalid value: Valid value range is empty: 0
ITunesSearchAPI Example and error
/// CHECK FOR IOS UPDATE
Future<void> checkForIOSUpdate() async {
await Future.delayed(Duration.zero);
final iTunes = ITunesSearchAPI();
final resultsFuture = iTunes.lookupByBundleId('com.******.*****);
resultsFuture.then((results) {
print('results: $results');
});
/*
UpgradeAlert();
*/
}
flutter: results: {resultCount: 0, results: []}
@NTMS2017 When you use the command line app, it will tell you the details of your bundle on the App Store. Can you run it and provide your results here? Here is an example:
$ dart itunes_lookup.dart bundleid=com.google.Maps
Also, is your app in the US App Store?
@larryaasen I got zsh: command not found: dart after running a command that you posted.
My .zshrc has only this 3 line as shown below. I didn't install dart, it came with flutter. And yes my App is In App Store but not sure if is the US App Store. When I publish my app in app store I configure only Turkey and Cyprus.
xport PATH="$PATH:/Users/myusername/flutter/bin"
export PATH="$PATH:/Users/myusername/.pub-cache/bin"
export PATH="$PATH:/Users/myusername/flutter/bin/cache/dart-sdk/"
@NTMS2017 Try:
/Users/myusername/flutter/bin/cache/dart-sdk/bin/dart itunes_lookup.dart bundleid=<your_bundle_id>
Thanks, but I got error as shown below. My app is not inn US App Store. When I login to AppStoreConnect the link show as https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app/14******20
How can I use package for my country App Store?
Error: Error when reading 'itunes_lookup.dart': No such file or directory
Using Terminal or another command line app, change directory to upgrader and run this:
/Users/myusername/flutter/bin/cache/dart-sdk/bin/dart bin/itunes_lookup.dart bundleid=<your_bundle_id>
ok when I use this link https://itunes.apple.com**/tr/**lookup?bundleId=myappbundle it works and I get some json file but couldn't see the version. Any idea?
Can you provide the results here?
This /Users/myusername/flutter/bin/cache/dart-sdk/bin/dart bin/itunes_lookup.dart bundleid=
Error: Error when reading 'bin/itunes_lookup.dart': No such file or directory
Here is the json file: After format the json online I cann see down the json as:
"version":"2.3.4+34",
{
"resultCount":1,
"results":[
{
"isGameCenterEnabled":false,
"screenshotUrls":[
"https://is5-ssl.mzstatic.com/image/thumb/Purple113/v4/b7/ce/d1/b7ced172-c440-b334-e0f1-bc4db56c2ca4/mzl.qdnqtjds.jpg/392x696bb.jpg",
"https://is3-ssl.mzstatic.com/image/thumb/Purple123/v4/05/a9/cd/05a9cd97-fee1-3a86-e434-25111dbbdc47/mzl.dtjpvvth.jpg/392x696bb.jpg",
"https://is4-ssl.mzstatic.com/image/thumb/Purple123/v4/af/b6/63/afb663c8-22cd-bdf2-47c2-85e11365285e/mzl.knajtkat.jpg/392x696bb.jpg",
"https://is1-ssl.mzstatic.com/image/thumb/Purple123/v4/b7/a8/51/b7a8511d-f053-43a4-2753-3062de015376/mzl.wthcskfy.jpg/392x696bb.jpg",
"https://is1-ssl.mzstatic.com/image/thumb/Purple123/v4/10/22/37/102237da-301a-a16b-6f5a-b8efafde36bd/mzl.kossvopc.jpg/392x696bb.jpg",
"https://is5-ssl.mzstatic.com/image/thumb/Purple113/v4/62/c7/b9/62c7b97d-ff2c-51aa-ef8c-ceb40dd83ea4/mzl.usyxwccf.jpg/392x696bb.jpg",
"https://is3-ssl.mzstatic.com/image/thumb/Purple113/v4/41/60/7f/41607f3c-8c36-d2c8-a6bf-7fa38225f9d3/mzl.yuthxpyq.jpg/392x696bb.jpg",
"https://is4-ssl.mzstatic.com/image/thumb/Purple113/v4/e9/94/a1/e994a170-693d-0edf-d645-87caece93997/mzl.lnpxtiab.jpg/392x696bb.jpg",
"https://is4-ssl.mzstatic.com/image/thumb/Purple123/v4/04/42/33/04423388-3c47-1396-7531-8b09aa6b2604/mzl.ogutwqeh.jpg/392x696bb.jpg",
"https://is3-ssl.mzstatic.com/image/thumb/Purple113/v4/ae/d4/4b/aed44b5c-df26-80f5-acf5-e716df179b55/mzl.gmcmnfhf.jpg/392x696bb.jpg"
],
"ipadScreenshotUrls":[
"https://is2-ssl.mzstatic.com/image/thumb/Purple123/v4/22/f8/b1/22f8b164-5055-1fe7-780d-d2aaad8c5232/mzl.wivvayen.png/576x768bb.png",
"https://is2-ssl.mzstatic.com/image/thumb/Purple123/v4/c9/04/fe/c904fe7f-e8ec-e3cd-fc00-c69a8fb78d46/mzl.stwvmuhn.png/576x768bb.png",
"https://is1-ssl.mzstatic.com/image/thumb/Purple123/v4/a1/ea/f3/a1eaf378-c2b0-7326-86d3-c7f2c88a34e3/mzl.rcjswbgr.png/576x768bb.png",
"https://is3-ssl.mzstatic.com/image/thumb/Purple123/v4/50/b5/fe/50b5fee2-cd99-b21f-172a-50be14df666d/mzl.dppqjjdu.png/576x768bb.png",
"https://is2-ssl.mzstatic.com/image/thumb/Purple113/v4/9a/17/2a/9a172ac5-a1f4-f8d6-48af-d7f5fa74017f/mzl.fdbqkowy.png/576x768bb.png",
"https://is5-ssl.mzstatic.com/image/thumb/Purple113/v4/5b/5f/10/5b5f10de-ef60-3889-19e4-0c6ddcd88112/mzl.wkynkrpr.png/576x768bb.png",
"https://is5-ssl.mzstatic.com/image/thumb/Purple123/v4/e6/dc/06/e6dc06b0-4fc6-eff1-b653-8822a23923e1/mzl.fbynavrm.png/576x768bb.png",
"https://is2-ssl.mzstatic.com/image/thumb/Purple123/v4/51/be/4d/51be4d2a-33cc-b06d-29d4-148a7bf9d755/mzl.vntjgizi.png/576x768bb.png"
],
"appletvScreenshotUrls":[
],
"artworkUrl60":"https://is4-ssl.mzstatic.com/image/thumb/Purple123/v4/40/13/f5/4013f5ed-90e3-aefc-802d-ae038c9385d0/source/60x60bb.jpg",
"artworkUrl512":"https://is4-ssl.mzstatic.com/image/thumb/Purple123/v4/40/13/f5/4013f5ed-90e3-aefc-802d-ae038c9385d0/source/512x512bb.jpg",
"artworkUrl100":"https://is4-ssl.mzstatic.com/image/thumb/Purple123/v4/40/13/f5/4013f5ed-90e3-aefc-802d-ae038c9385d0/source/100x100bb.jpg",
"artistViewUrl":"https://apps.apple.com/tr/developer/kibris-kapitalbank-ltd/id1458847765?uo=4",
"supportedDevices":[
"iPhone5s-iPhone5s",
"iPadAir-iPadAir",
"iPadAirCellular-iPadAirCellular",
"iPadMiniRetina-iPadMiniRetina",
"iPadMiniRetinaCellular-iPadMiniRetinaCellular",
"iPhone6-iPhone6",
"iPhone6Plus-iPhone6Plus",
"iPadAir2-iPadAir2",
"iPadAir2Cellular-iPadAir2Cellular",
"iPadMini3-iPadMini3",
"iPadMini3Cellular-iPadMini3Cellular",
"iPodTouchSixthGen-iPodTouchSixthGen",
"iPhone6s-iPhone6s",
"iPhone6sPlus-iPhone6sPlus",
"iPadMini4-iPadMini4",
"iPadMini4Cellular-iPadMini4Cellular",
"iPadPro-iPadPro",
"iPadProCellular-iPadProCellular",
"iPadPro97-iPadPro97",
"iPadPro97Cellular-iPadPro97Cellular",
"iPhoneSE-iPhoneSE",
"iPhone7-iPhone7",
"iPhone7Plus-iPhone7Plus",
"iPad611-iPad611",
"iPad612-iPad612",
"iPad71-iPad71",
"iPad72-iPad72",
"iPad73-iPad73",
"iPad74-iPad74",
"iPhone8-iPhone8",
"iPhone8Plus-iPhone8Plus",
"iPhoneX-iPhoneX",
"iPad75-iPad75",
"iPad76-iPad76",
"iPhoneXS-iPhoneXS",
"iPhoneXSMax-iPhoneXSMax",
"iPhoneXR-iPhoneXR",
"iPad812-iPad812",
"iPad834-iPad834",
"iPad856-iPad856",
"iPad878-iPad878",
"iPadMini5-iPadMini5",
"iPadMini5Cellular-iPadMini5Cellular",
"iPadAir3-iPadAir3",
"iPadAir3Cellular-iPadAir3Cellular",
"iPodTouchSeventhGen-iPodTouchSeventhGen",
"iPhone11-iPhone11",
"iPhone11Pro-iPhone11Pro",
"iPadSeventhGen-iPadSeventhGen",
"iPadSeventhGenCellular-iPadSeventhGenCellular",
"iPhone11ProMax-iPhone11ProMax"
],
"advisories":[
],
"kind":"software",
"features":[
"iosUniversal"
],
"trackCensoredName”:”***************”,
"languageCodesISO2A":[
"EN"
],
"fileSizeBytes":"45254656",
"sellerUrl":"https://www.youtube.com/watch?v=v09OoPqB2Bw",
"contentAdvisoryRating":"4+",
"averageUserRatingForCurrentVersion":5.0,
"userRatingCountForCurrentVersion":1,
"trackViewUrl":"https://apps.apple.com/tr/app/******************/id1460361220?uo=4",
"trackContentRating":"4+",
"trackId":1460361220,
"trackName”:”******************”,
"releaseDate":"2019-04-26T20:12:22Z",
"currentVersionReleaseDate":"2019-12-19T17:25:25Z",
"releaseNotes":"Güncelleme ******”,
"isVppDeviceBasedLicensingEnabled":true,
"primaryGenreName":"Finance",
"genreIds":[
"6015",
"6000"
],
"primaryGenreId":6015,
"sellerName”:”***************”,
"formattedPrice":"Free",
"minimumOsVersion":"11.0",
"currency":"TRY",
"version":"2.3.4+34",
"wrapperType":"software",
"bundleId”:”c************”,
"artistId":1458847765,
"artistName”:”****”*************,
"genres":[
"Finance",
"Business"
],
"price":0.00,
"description”:”*************.”,
"averageUserRating":5.0,
"userRatingCount":6
}
]
}
Any news? Also is upgrader force my app to update from App Store?
I figured out the problem. This package does not support countries outside of the US very well. Since your app is in the TR country App Store, the response returned empty, so a new version was not found.
I was able to get the included example app to work with these few changes that you can make to get this package to work for you.
_countryCode ??= 'TR';
Version 2.3.4+34 is now available-you have 1.0
. See my screenshot below.
@larryaasen thank you very much, I will try today and post the result here.
It will be nice to add country parameters to upgrader/lib/src/upgrader.dart so all Flutter developer can use this plugin.
Open the file: upgrader/lib/src/upgrader.dart and change the country on this line from US to TR:
_countryCode ??= 'TR';
💯 🥇 👍
It couldn't better than this one. Kind Thanks.
It didn't print as a json format. And because of my country code TR I have few more questions?
Here is the result:
flutter: results: {resultCount: 0, results: []}
flutter: upgrader: build UpgradeAlert
flutter: upgrader: package info packageName: com.*********.*******
flutter: upgrader: package info version: 2.3.3
flutter: upgrader: appStoreVersion: 2.3.4+34
flutter: upgrader: installedVersion: 2.3.3
flutter: upgrader: isUpdateAvailable: true
flutter: upgrader: showDialog title: Update App?
flutter: upgrader: showDialog message: A new version of ********** is available! Version 2.3.4+34 is now available-you have 2.3.3.
flutter: upgrader: build UpgradeAlert
flutter: upgrader: button tapped: UPDATE NOW
flutter: upgrader: launching: https://apps.apple.com/tr/app/********/id*******?uo=4
Ok, I hack (because no documentation about it :) ) Upgrader and check if update is available. In initState I call _checkForIOSUpdate() and and if update is available in build widget body I show the AlertDialog. If not not I let user to use current app.
I thank you for this great packages. Kind Thanks
/// CHECK FOR IOS UPDATE
Future _checkForIOSUpdate() async {
setState(() {
_runUpdateLoading = true;
});
Upgrader().clearSavedSettings();
Upgrader().debugDisplayAlways = false;
Upgrader().debugDisplayOnce = false;
await Upgrader().initialize();
bool _isAvailable = Upgrader().isUpdateAvailable();
await Future.delayed(Duration(milliseconds: 250));
print('_isAvailable: $_isAvailable');
if (_isAvailable == true) {
setState(() {
_checkUpdate = true;
_runUpdateLoading = false;
});
} else {
setState(() {
_checkUpdate = false;
_runUpdateLoading = false;
});
}
}
I am sorry this package has not met all of your needs, but I will continue to improve it in the future. Thanks for your feedback.
Hi,
I am trying to use this package for my iOS app which is in App Store. But I am not sure where to start. Is the example file is enough? Or can you post more deatils now not use for iOS. Also I want to force user to update always. how to disable other 2 buttons? Thanks