PromiseKit icon indicating copy to clipboard operation
PromiseKit copied to clipboard

AppClip doesn't support requestAlwaysAuthorization for Location

Open Vicky-IAG opened this issue 4 years ago • 1 comments

Issue

Appstore rejects the AppClip with Promisekit due to it's usage of requestAlwaysAuthorization in AuthorizationCatcher.

ITMS-90842: Invalid SDK usage - App clip 'AppClip.app' uses the SDK selector 'requestAlwaysAuthorization', which is not supported. Ensure your app clip is using supported SDK features.

Steps to Reproduce

Xcode: 12.5 Minimu iOS Version Supported: 12+ PromiseKit: 6.15.3 Cocoapods: 1.10.1

  1. Create an appclip target using the following steps.
  2. Add the AppClip target to Podfile and let it use the PromiseKit.
  3. Build and submit the app with AppClip to AppStore.
  4. You will receive the email with above issue ITMS-90842: Invalid SDK usage.

Recommended Fix

In initialiser of AuthorizationCatcher, update ask(type:) to use APPCLIP macro which needs to be defined for AppClip targets.

           switch type {
            case .always:
            #if os(tvOS) || APPCLIP
                fallthrough
            #else
                requestAlwaysAuthorization()
            #endif
            case .whenInUse:
                requestWhenInUseAuthorization()
            }

Vicky-IAG avatar Aug 24 '21 01:08 Vicky-IAG

Hmm, seems strange Apple wouldn’t provide an #if environment(AppClip) or something like that. Can we find one? I could not but don’t have a lot of time for this.

Refs https://github.com/PromiseKit/CoreLocation/issues/34

mxcl avatar Aug 27 '21 14:08 mxcl