Baseflow / flutter-permission-handler

Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
https://baseflow.com
MIT License
2.02k stars 836 forks source link

[Bug]: permission_handler_apple 9.2.0 gives ARC Semantic Issue (Xcode): No visible @interface ... errors on ios build #1238

Open lisovyk opened 9 months ago

lisovyk commented 9 months ago

Please check the following before submitting a new issue.

Please select affected platform(s)

Steps to reproduce

I started having an error when building iOS release file with flutter build ipa and the same error when trying to launch a an app in debug mode, while everything has built correctly yesterday on the same version.

Downgrading to 11.0.0, which uses permission_handler_apple version 9.1.4, solves the issue, although it was working fine on the latest release, 11.1.0. Any ideas? I have re-installed the permission_handler with no effect. Removed podfile & ran pod install, flutter clean, anything I could think of..

Android build works good so far

Expected results

App builds and runs without issue

Actual results

my-app % flutter build ipa

Archiving com.lisovyk.MyApp...
Automatically signing iOS for device deployment using specified development team in Xcode project: <devteamnumber>
Running Xcode build...                                                  
Xcode archive done.                                          7.7s
Failed to build iOS app
ARC Semantic Issue (Xcode): No visible @interface for 'EKEventStore' declares the selector 'requestFullAccessToEventsWithCompletion:'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:55:24

ARC Semantic Issue (Xcode): No visible @interface for 'EKEventStore' declares the selector 'requestWriteOnlyAccessToEventsWithCompletion:'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:63:24

ARC Semantic Issue (Xcode): No visible @interface for 'EKEventStore' declares the selector 'requestFullAccessToRemindersWithCompletion:'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:71:24

Semantic Issue (Xcode): Use of undeclared identifier 'EKAuthorizationStatusFullAccess'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:105:17

Semantic Issue (Xcode): Use of undeclared identifier 'EKAuthorizationStatusWriteOnly'; did you mean 'EKAuthorizationStatusDenied'?
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:107:17

Semantic Issue (Xcode): Duplicate case value 'EKAuthorizationStatusDenied'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:107:17

Semantic Issue (Xcode): Use of undeclared identifier 'EKAuthorizationStatusWriteOnly'; did you mean 'EKAuthorizationStatusDenied'?
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:123:17

Semantic Issue (Xcode): Duplicate case value 'EKAuthorizationStatusDenied'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:123:17

Encountered error while archiving for device.

Same on debug mode run:

Launching lib/main.dart on 6.5'' in debug mode...
Xcode build done.                                           22.9s
Failed to build iOS app
ARC Semantic Issue (Xcode): No visible @interface for 'EKEventStore' declares the selector 'requestFullAccessToEventsWithCompletion:'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:55:24
ARC Semantic Issue (Xcode): No visible @interface for 'EKEventStore' declares the selector 'requestWriteOnlyAccessToEventsWithCompletion:'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:63:24

ARC Semantic Issue (Xcode): No visible @interface for 'EKEventStore' declares the selector 'requestFullAccessToRemindersWithCompletion:'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:71:24

Semantic Issue (Xcode): Use of undeclared identifier 'EKAuthorizationStatusFullAccess'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:105:17

Semantic Issue (Xcode): Use of undeclared identifier 'EKAuthorizationStatusWriteOnly'; did you mean 'EKAuthorizationStatusDenied'?
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:107:17

Semantic Issue (Xcode): Duplicate case value 'EKAuthorizationStatusDenied'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:107:17

Semantic Issue (Xcode): Use of undeclared identifier 'EKAuthorizationStatusWriteOnly'; did you mean 'EKAuthorizationStatusDenied'?
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:123:17

Semantic Issue (Xcode): Duplicate case value 'EKAuthorizationStatusDenied'
/Users/vladli/.pub-cache/hosted/pub.dev/permission_handler_apple-9.2.0/ios/Classes/strategies/EventPermissionStrategy.m:123:17

Could not build the application for the simulator.
Error launching application on 6.5''.
Exited (1)

Code sample

Hard to create a code sample with a production-scale app :(

Screenshots or video

No response

Version

11.1.0

Flutter Doctor output

Doctor output ```console ios % flutter doctor -v [✓] Flutter (Channel stable, 3.16.0, on macOS 13.5.1 22G90 darwin-arm64, locale en-UA) • Flutter version 3.16.0 on channel stable at /Users/vladli/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision db7ef5bf9f (12 days ago), 2023-11-15 11:25:44 -0800 • Engine revision 74d16627b9 • Dart version 3.2.0 • DevTools version 2.28.2 [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0) • Android SDK at /Users/vladli/Library/Android/sdk • Platform android-34, build-tools 33.0.0 • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS (Xcode 14.3.1) • Xcode at /Applications/Xcode.app/Contents/Developer • Build 14E300c • CocoaPods version 1.12.1 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [✓] Android Studio (version 2022.3) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231) [✓] VS Code (version 1.82.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.76.0 [✓] Connected device (3 available) • iPhone 14 Pro Max (mobile) • C758A6A4-B1BB-40B7-97C9-EAB0E0216CB4 • ios • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator) • macOS (desktop) • macos • darwin-arm64 • macOS 13.5.1 22G90 darwin-arm64 • Chrome (web) • chrome • web-javascript • Google Chrome 119.0.6045.159 [✓] Network resources • All expected network resources are available. • No issues found! ```
hjr19911126 commented 9 months ago

The same problem occurs

TimHoogstrate commented 9 months ago

Dear @lisovyk and @hjr19911126,

It looks like you both are using an older version of Xcode. Please update Xcode to version 15 or above, or use the 11.0.0 for your project. The new permission_handler manages iOS 17 features that are not yet available on Xcode 14. We could add a compiler check to prevent this from happening on older Xcode versions. But this is not something that we are fixing soon.

Kind regards,

JakeHadley commented 7 months ago

@TimHoogstrate I still get this error when using 11.0.0. I'm on xcode 14 and can't upgrade to 15 because my mac is too old lol. Is there another workaround? I ended up moving back to 10.4.5 and got it to build. But on an ios emulator, attempting to get calendar/events permission shows the popup dialog for a split second, and then it disappears and shows as permanentlyDenied. The other permissions work great.

Edit: I guess this was a previous issue per https://github.com/Baseflow/flutter-permission-handler/issues/1188. Major bummer feeling like I have to get a new laptop just to run this library properly.

cyberpwnn commented 5 months ago

Build now broken, what can i revert to or is there another plugin that does this so i can not have this be a blocker?