AppClip doesn't support requestAlwaysAuthorization for Location
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
- Create an appclip target using the following steps.
- Add the AppClip target to
Podfileand let it use the PromiseKit. - Build and submit the app with AppClip to AppStore.
- 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()
}
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