rmtmckenzie / flutter_qr_mobile_vision

QR reader plugin using mobile vision API for Flutter.
MIT License
214 stars 185 forks source link

Provokes Apple Rejection with issue: ITMS-90809: Deprecated API Usage #132

Open pictureframing opened 4 years ago

pictureframing commented 4 years ago

Obviously provokes a rejection when uploading to Apple AppStore with the message:

ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).

Running a search for "UIWebView" in the Pods (grep -r UIWebView ios/Pods/) gives result that FirebaseMLCommon and GoogleMobileVision use UIWebView.

Problem is resolved when removing flutter_qr_mobile_vision from packages, deleting pods and running pod update.

Using qr_mobile_vision 1.0.1+1

rmtmckenzie commented 4 years ago

The whole point of the 1.* release was to move to firebase and stop using deprecated APIs. My app uses the package, was approved, and grep returns nothing for UIWebView.

Try doing a full clean and pod update in the iOS folder if you've updated from an older version, sometimes cocoapods leaves a bunch of unused stuff lying around.

pictureframing commented 4 years ago

Im aware of that, but I tried everything. I can't get it going. I even created a completely new flutter project - no other packages included - tried grep: no result. Then added the qr_mobile_vision ^1.0.1+1 package to pubspec.yaml, tried grep again, now it returns:

grep -r UIWebView ios/Pods/ Binary file ios/Pods//FirebaseMLCommon/Frameworks/FirebaseMLCommon.framework/FirebaseMLCommon matches Binary file ios/Pods//GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision matches

Noninus commented 4 years ago

@pictureframing same problem here. Tried everything. My grep found this too.

rmtmckenzie commented 4 years ago

Okay, I managed to get my env so that it had the old pods, then updated.

cd ios
pod cache clean --all
pod repo update
pod update
cd ..
flutter clean
flutter build ios
grep -r IUWebView ios/Pods

Unfortunately cocoapods is... a bit temperamental sometimes, so doing that forces it to reset. I think pod repo update is the important part of that but if you do all of it you should be good.

Noninus commented 4 years ago

@rmtmckenzie I followed all yours steps and tried to upload the app to appconnect, but i still getting ITMS-90809: Deprecated API Usage

Edit: My grep -r IUWebView ios/Pods don't find anything, but when i upload app to store i receive the e-mail: ITMS-90809: Deprecated API Usage - App updates that use UIWebView will no longer be accepted as of December 2020. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).

rmtmckenzie commented 4 years ago

@Noninus that's really strange. Maybe upload your podfile.lock, then I can see why it might be depending on old versions still.

athlona64 commented 4 years ago

not work because i use firebase auth same is conflict version firebasecore how to solve ?

booooza commented 4 years ago

What is your targeted iOS platform in ios/Podfile? Switching from 8.0 to 9.0 installs 6.x versions of firebase packages (e.g. Firebase/MLVision 6.24.0 instead of 5.11.0 before) for my project (there are no other dependencies on Firebase).

veeyaarVR commented 4 years ago

@rmtmckenzie even I am facing the same issue even after updating it to qr_mobile_vision ^1.0.1+1 did someone actually solved this issue by updating the package?

imkarthikb commented 4 years ago

What is your targeted iOS platform in ios/Podfile? Switching from 8.0 to 9.0 installs 6.x versions of firebase packages (e.g. Firebase/MLVision 6.24.0 instead of 5.11.0 before) for my project (there are no other dependencies on Firebase).

@booooza's comment put us in right direction. I updated the IOS deployment target version from 8.0 to 9.0 and deleted the Pods and Podfile.lock files and did pod install where we can see firebase 6.26.0 version getting installed, and also after running flutter build ios the grep doesn't return anything and the app gets uploaded successfully.

cd ios
rm -rf Pods
rm -rf Podfile.lock
pod install
cd ..
flutter clean
flutter build ios
grep -r UIWebView ios/Pods
rmtmckenzie commented 4 years ago

Oh interesting, I didn't realize the firebase library depended on iOS deployment version. I'll keep this issue open as a reminder to add that to the documentation for this plugin.

hrshs commented 4 years ago

I set the deployment target version from 8.0 to 9.0 ann then run these commands

Okay, I managed to get my env so that it had the old pods, then updated.

cd ios
pod cache clean --all
pod repo update
pod update
cd ..
flutter clean
flutter build ios
grep -r IUWebView ios/Pods

Unfortunately cocoapods is... a bit temperamental sometimes, so doing that forces it to reset. I think pod repo update is the important part of that but if you do all of it you should be good.