Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Action] - Permission submodules to avoid info.plist App Store rejection #79

Closed
3 tasks done
jevonmao opened this issue Jun 13, 2021 · 9 comments
Closed
3 tasks done
Assignees
Labels
good first issue Good for newcomers help wanted Extra attention is needed work in progres A issue that is already WIP, not open for contributing

Comments

@jevonmao
Copy link
Owner

jevonmao commented Jun 13, 2021

Currently PermissionsSwiftUI uses one whole module for all the permissions, resulting in App Store rejection when used. Apple guidelines would require info.plist strings for all permissions referenced in code.

Tracking bug #77.

Action items

  • Define submodules in Package.swift
  • Create new directories and move permission managers files accordingly
  • Build & Test, pull request

(This solution is derived from sparrowcode/PermissionsKit#240)

Visual Reference

Apple rejection reason (original text):

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSContactsUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more

Special Instructions

@jevonmao jevonmao added good first issue Good for newcomers help wanted Extra attention is needed work in progres A issue that is already WIP, not open for contributing labels Jun 13, 2021
@jevonmao jevonmao self-assigned this Jun 13, 2021
@smaldd14
Copy link

@jevonmao Hi, thank you for your hard work on this bug. Any idea when we can expect to have this bug fix? I'd like to have the correct fix before submitting this build to App store connect

@jevonmao
Copy link
Owner Author

@smaldd14 I will push out a new version release of PermissionsSwiftUI in about 2 days, with the bug fix.

@smaldd14
Copy link

@jevonmao I have uninstalled the PermissionSwUI package and reinstall and only checked boxes for Notifications, photo, Tracking, Location Always, and Contacts. When I go to build my project, I get build error like below

Showing Recent Messages
Undefined symbol: (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType]) -> some

Showing Recent Messages
Undefined symbol: (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some

Along with other errors have to do with PermissionType and JMAlert. Is there something I am missing? Have I not included the rights packages?

@jevonmao
Copy link
Owner Author

@smaldd14 Can you please provide Xcode version, MacOS version, deployment version, and simulator model?

@jevonmao
Copy link
Owner Author

jevonmao commented Jun 14, 2021

Also if possible, provide a code snippet and make sure you imported all the modules at top of file. Because I'm not able to reproduce your error on my end.

@smaldd14
Copy link

XCode version 12.4
MacOS Catalina 10.15.7
simulator model iPhone 12 pro (although doesn't even open up simulator because it fails before this
deployment version iOS 14.4

Full list of error

Undefined symbols for architecture x86_64:
"(extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some", referenced from:
BarCam4.createProfilePictureView.body.getter : some in createProfilePictureView.o
(maybe you meant: demangling cache variable for type metadata for <<opaque return type of (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some>>.0, default argument 4 of (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some )
"(extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], autoDismiss: Swift.Bool?, autoCheckAuthorization: Swift.Bool?, onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some", referenced from:
closure #1 (SwiftUI.GeometryProxy) -> <<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0 in closure #2 () -> SwiftUI.GeometryReader<<<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0> in BarCam4.MainView.body.getter : some in MainView.o
(maybe you meant: default argument 3 of (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], autoDismiss: Swift.Bool?, autoCheckAuthorization: Swift.Bool?, onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some, default argument 2 of (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], autoDismiss: Swift.Bool?, autoCheckAuthorization: Swift.Bool?, onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some , default argument 4 of (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], autoDismiss: Swift.Bool?, autoCheckAuthorization: Swift.Bool?, onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some , demangling cache variable for type metadata for <<opaque return type of (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], autoDismiss: Swift.Bool?, autoCheckAuthorization: Swift.Bool?, onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some>>.0 , default argument 6 of (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], autoDismiss: Swift.Bool?, autoCheckAuthorization: Swift.Bool?, onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some , default argument 5 of (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], autoDismiss: Swift.Bool?, autoCheckAuthorization: Swift.Bool?, onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some )
"type metadata for PermissionsSwiftUI.PermissionType", referenced from:
BarCam4.createProfilePictureView.body.getter : some in createProfilePictureView.o
closure #1 (SwiftUI.GeometryProxy) -> <<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0 in closure #2 () -> SwiftUI.GeometryReader<<<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0> in BarCam4.MainView.body.getter : some in MainView.o
"opaque type descriptor for <<opaque return type of (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some>>", referenced from:
BarCam4.createProfilePictureView.body.getter : some in createProfilePictureView.o
l_get_witness_table qd__18PermissionsSwiftUI16CustomizableViewHD2_0bC00E0HI1_AcDPAAE7JMAlert9showModal3for8onAppear0J9Disappear0jL7HandlerQrAC7BindingVySbG_SayAA14PermissionTypeOGyycSgARySayAA8JMResultVGSg_AVtcSgtFQOyAC15ModifiedContentVyAeCE5sheet11isPresented0J7Dismiss7contentQrAN_ARqd__yctAcDRd__lFQOyAYyAC6VStackVyAC05TupleE0VyAYyAYyAC4TextVAC12_FrameLayoutVGAC30_EnvironmentKeyWritingModifierVyAC13TextAlignmentOGG_A3_yA5_yAC6ButtonVyAYyAYyAYyAC5ImageVAC18_AspectRatioLayoutVGA9_GAC11_ClipEffectVyAC6CircleVGGG_A18_yA16_GtGGA16_AC6SpacerVA18_yAYyAYyAYyAYyAC6HStackVyA5_yA36__AYyA7_AC14_PaddingLayoutVGA36_tGGAC19_BackgroundModifierVyAC5ColorVGGA26_yAC16RoundedRectangleVGGA40_GA40_GGtGGA45_y0B3UIX25NavigationBarConfiguratorVyAC05EmptyE0VA23_A63_A63_GGG_A59_11ImagePickerVQo_AC25_AppearanceActionModifierVG_Qo_HO in createProfilePictureView.o
_symbolic ____y_____y_____yAAy_____y_____yAAyAAy__________G_____y_____GG_AByACy_____yAAyAAyAAy__________GAEG_____y_____GGG_AKyAJGtGGAJ_____AKyAAyAAyAAyAAy_____yACyAX_AAyAD_____GAXtGG_____y_____GGAPy_____GGAZGAZGGtGGA2_y_____y_____ANA15_A15_GGG______Qo______G_Qo 7SwiftUI4ViewP011PermissionsaB0E7JMAlert9showModal3for8onAppear0I9Disappear0iK7HandlerQrAA7BindingVySbG_SayAD14PermissionTypeOGyycSgAQySayAD8JMResultVGSg_AUtcSgtFQO AA15ModifiedContentV AcAE5sheet11isPresented0I7Dismiss7contentQrAM_AQqd__yctAaBRd__lFQO AA6VStackV AA05TupleC0V AA4TextV AA12_FrameLayoutV AA30_EnvironmentKeyWritingModifierV AA0Z9AlignmentO AA6ButtonV AA5ImageV AA18_AspectRatioLayoutV AA11_ClipEffectV AA6CircleV AA6SpacerV AA6HStackV AA14_PaddingLayoutV AA19_BackgroundModifierV AA5ColorV AA16RoundedRectangleV 0A3UIX25NavigationBarConfiguratorV AA05EmptyC0V A35_11ImagePickerV AA25_AppearanceActionModifierV in createProfilePictureView.o
"opaque type descriptor for <<opaque return type of (extension in PermissionsSwiftUI):SwiftUI.View.JMAlert(showModal: SwiftUI.Binding<Swift.Bool>, for: [PermissionsSwiftUI.PermissionType], autoDismiss: Swift.Bool?, autoCheckAuthorization: Swift.Bool?, onAppear: () -> ()?, onDisappear: () -> ()?, onDisappearHandler: ([PermissionsSwiftUI.JMResult]?, [PermissionsSwiftUI.JMResult]?) -> ()?) -> some>>", referenced from:
closure #2 () -> SwiftUI.GeometryReader<<<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0> in BarCam4.MainView.body.getter : some in MainView.o
closure #1 (SwiftUI.GeometryProxy) -> <<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0 in closure #2 () -> SwiftUI.GeometryReader<<<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0> in BarCam4.MainView.body.getter : some in MainView.o
_symbolic _____y_____y_____y_____y_____yACyACy_____y_____y_____yACyACyACy_____yAEy___________y_____GAHy_____GAFyAHyACy__________GGSgGtGG_____G_____G_____ySbGG_ACyACyACyACy__________y_____GG_____G_____G_____y_____GGSgtGG______y_____GQo_A1_y_____y_____ACy__________GACy_____yAEy________________tGG_____yA2_SgGG_____GGGANGA1_y_____GG_Qo_______Qo_GG 7SwiftUI14NavigationViewV AA14GeometryReaderV AA0D0PAAE010navigationD5StyleyQrqd__AA0cdH0Rd__lFQO AG011PermissionsaB0E7JMAlert9showModal3for11autoDismiss0N18CheckAuthorization8onAppear0R9Disappear0rT7HandlerQrAA7BindingVySbG_SayAJ14PermissionTypeOGSbSgAYyycSgAZySayAJ8JMResultVGSg_A2_tcSgtFQO AA15ModifiedContentV AgAE7gesture_9includingQrqd___AA11GestureMaskVtAA7GestureRd__lFQO AA6ZStackV AA05TupleD0V AA6VStackV 7BarCam405StoryD0V A17_06HiddenC4LinkV A17_011UserProfileD0V A17_07ExploreD0V A17_013ImAPlaceOwnerD0V AA25_AppearanceActionModifierV AA12_FrameLayoutV AA13_OffsetEffectV AA32_EnvironmentKeyTransformModifierV A17_08SideMenuD0V AA19_BackgroundModifierV AA5ColorV AA16_FlexFrameLayoutV AA23_SafeAreaIgnoringLayoutV AA21_TraitWritingModifierV AA18TransitionTraitKeyV AA13_EndedGestureV AA11DragGestureV 0A3UIX0C15BarConfiguratorV A17_012BurgerButtonD0V AA5ImageV AA18_AspectRatioLayoutV AA6HStackV A17_012SearchButtonD0V AA6SpacerV A17_017UserProfileButtonD0V AA30_EnvironmentKeyWritingModifierV AA05EmptyD0V A17_0C12ConfiguratorV AA05StackcdH0V in MainView.o
_symbolic _____y_____y_____y_____yAByABy_____y_____y_____yAByAByABy_____yADy___________y_____GAGy_____GAEyAGyABy__________GGSgGtGG_____G_____G_____ySbGG_AByAByAByABy__________y_____GG_____G_____G_____y_____GGSgtGG______y_____GQo_A0_y_____y_____ABy__________GABy_____yADy________________tGG_____yA1_SgGG_____GGGAMGA0_y_____GG_Qo_______Qo_G 7SwiftUI14GeometryReaderV AA4ViewPAAE010navigationE5StyleyQrqd__AA010NavigationeG0Rd__lFQO AE011PermissionsaB0E7JMAlert9showModal3for11autoDismiss0N18CheckAuthorization8onAppear0R9Disappear0rT7HandlerQrAA7BindingVySbG_SayAH14PermissionTypeOGSbSgAWyycSgAXySayAH8JMResultVGSg_A0_tcSgtFQO AA15ModifiedContentV AeAE7gesture_9includingQrqd___AA11GestureMaskVtAA7GestureRd__lFQO AA6ZStackV AA05TupleE0V AA6VStackV 7BarCam405StoryE0V A15_06HiddenH4LinkV A15_011UserProfileE0V A15_07ExploreE0V A15_013ImAPlaceOwnerE0V AA25_AppearanceActionModifierV AA12_FrameLayoutV AA13_OffsetEffectV AA32_EnvironmentKeyTransformModifierV A15_08SideMenuE0V AA19_BackgroundModifierV AA5ColorV AA16_FlexFrameLayoutV AA23_SafeAreaIgnoringLayoutV AA21_TraitWritingModifierV AA18TransitionTraitKeyV AA13_EndedGestureV AA11DragGestureV 0A3UIX0H15BarConfiguratorV A15_012BurgerButtonE0V AA5ImageV AA18_AspectRatioLayoutV AA6HStackV A15_012SearchButtonE0V AA6SpacerV A15_017UserProfileButtonE0V AA30_EnvironmentKeyWritingModifierV AA05EmptyE0V A15_0H12ConfiguratorV AA05StackheG0V in MainView.o
_symbolic _____y_____y_____y_____y_____yAAyAAyAAy_____y_____y_____yAAyAAyAAy_____yAEy___________y_____GAHy_____GAFyAHyAAy__________GGSgGtGG_____G_____G_____ySbGG_AAyAAyAAyAAy__________y_____GG_____G_____G_____y_____GGSgtGG______y_____GQo_A1_y_____y_____AAy__________GAAy_____yAEy________________tGG_____yA2_SgGG_____GGGANGA1_y_____GG_Qo_______Qo_GGA33_G 7SwiftUI15ModifiedContentV AA14NavigationViewV AA14GeometryReaderV AA0F0PAAE010navigationF5StyleyQrqd__AA0efJ0Rd__lFQO AI011PermissionsaB0E7JMAlert9showModal3for11autoDismiss0P18CheckAuthorization8onAppear0T9Disappear0tV7HandlerQrAA7BindingVySbG_SayAL14PermissionTypeOGSbSgA_yycSgA0_ySayAL8JMResultVGSg_A4_tcSgtFQO AiAE7gesture_9includingQrqd___AA11GestureMaskVtAA7GestureRd__lFQO AA6ZStackV AA05TupleF0V AA6VStackV 7BarCam405StoryF0V A17_06HiddenE4LinkV A17_011UserProfileF0V A17_07ExploreF0V A17_013ImAPlaceOwnerF0V AA25_AppearanceActionModifierV AA12_FrameLayoutV AA13_OffsetEffectV AA32_EnvironmentKeyTransformModifierV A17_08SideMenuF0V AA19_BackgroundModifierV AA5ColorV AA16_FlexFrameLayoutV AA23_SafeAreaIgnoringLayoutV AA21_TraitWritingModifierV AA18TransitionTraitKeyV AA13_EndedGestureV AA11DragGestureV 0A3UIX0E15BarConfiguratorV A17_012BurgerButtonF0V AA5ImageV AA18_AspectRatioLayoutV AA6HStackV A17_012SearchButtonF0V AA6SpacerV A17_017UserProfileButtonF0V AA30_EnvironmentKeyWritingModifierV AA05EmptyF0V A17_0E12ConfiguratorV AA05StackefJ0V in MainView.o
_symbolic ____y_____y_____yAAyAAy_____y_____y_____yAAyAAyAAy_____yACy___________y_____GAFy_____GADyAFyAAy__________GGSgGtGG_____G_____G_____ySbGG_AAyAAyAAyAAy__________y_____GG_____G_____G_____y_____GGSgtGG______y_____GQo_A_y_____y_____AAy__________GAAy_____yACy________________tGG_____yA0_SgGG_____GGGALGA_y_____GG_Qo_______Qo 7SwiftUI4ViewPAAE010navigationC5StyleyQrqd__AA010NavigationcE0Rd__lFQO AC011PermissionsaB0E7JMAlert9showModal3for11autoDismiss0L18CheckAuthorization8onAppear0P9Disappear0pR7HandlerQrAA7BindingVySbG_SayAF14PermissionTypeOGSbSgAUyycSgAVySayAF8JMResultVGSg_AZtcSgtFQO AA15ModifiedContentV AcAE7gesture_9includingQrqd___AA11GestureMaskVtAA7GestureRd__lFQO AA6ZStackV AA05TupleC0V AA6VStackV 7BarCam405StoryC0V A13_06HiddenF4LinkV A13_011UserProfileC0V A13_07ExploreC0V A13_013ImAPlaceOwnerC0V AA25_AppearanceActionModifierV AA12_FrameLayoutV AA13_OffsetEffectV AA32_EnvironmentKeyTransformModifierV A13_08SideMenuC0V AA19_BackgroundModifierV AA5ColorV AA16_FlexFrameLayoutV AA23_SafeAreaIgnoringLayoutV AA21_TraitWritingModifierV AA18TransitionTraitKeyV AA13_EndedGestureV AA11DragGestureV 0A3UIX0F15BarConfiguratorV A13_012BurgerButtonC0V AA5ImageV AA18_AspectRatioLayoutV AA6HStackV A13_012SearchButtonC0V AA6SpacerV A13_017UserProfileButtonC0V AA30_EnvironmentKeyWritingModifierV AA05EmptyC0V A13_0F12ConfiguratorV AA05StackfcE0V in MainView.o
_symbolic ____y_____yAAyAAy_____y_____y_____yAAyAAyAAy_____yACy___________y_____GAFy_____GADyAFyAAy__________GGSgGtGG_____G_____G_____ySbGG_AAyAAyAAyAAy__________y_____GG_____G_____G_____y_____GGSgtGG______y_____GQo_A_y_____y_____AAy__________GAAy_____yACy________________tGG_____yA0_SgGG_____GGGALGA_y_____GG_Qo 7SwiftUI4ViewP011PermissionsaB0E7JMAlert9showModal3for11autoDismiss0I18CheckAuthorization8onAppear0M9Disappear0mO7HandlerQrAA7BindingVySbG_SayAD14PermissionTypeOGSbSgASyycSgATySayAD8JMResultVGSg_AXtcSgtFQO AA15ModifiedContentV AcAE7gesture_9includingQrqd___AA11GestureMaskVtAA0Y0Rd__lFQO AA6ZStackV AA05TupleC0V AA6VStackV 7BarCam405StoryC0V A11_20HiddenNavigationLinkV A11_011UserProfileC0V A11_07ExploreC0V A11_013ImAPlaceOwnerC0V AA25_AppearanceActionModifierV AA12_FrameLayoutV AA13_OffsetEffectV AA32_EnvironmentKeyTransformModifierV A11_08SideMenuC0V AA19_BackgroundModifierV AA5ColorV AA16_FlexFrameLayoutV AA23_SafeAreaIgnoringLayoutV AA21_TraitWritingModifierV AA18TransitionTraitKeyV AA06_EndedY0V AA04DragY0V 0A3UIX25NavigationBarConfiguratorV A11_012BurgerButtonC0V AA5ImageV AA18_AspectRatioLayoutV AA6HStackV A11_012SearchButtonC0V AA6SpacerV A11_017UserProfileButtonC0V AA30_EnvironmentKeyWritingModifierV AA05EmptyC0V A11_22NavigationConfiguratorV in MainView.o
...
"(extension in PermissionsSwiftUI):PermissionsSwiftUI.CustomizableView.changeHeaderDescriptionTo(Swift.String) -> some", referenced from:
BarCam4.createProfilePictureView.body.getter : some in createProfilePictureView.o
closure #1 (SwiftUI.GeometryProxy) -> <<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0 in closure #2 () -> SwiftUI.GeometryReader<<<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0> in BarCam4.MainView.body.getter : some in MainView.o
"(extension in PermissionsSwiftUI):PermissionsSwiftUI.CustomizableView.changeBottomDescriptionTo(Swift.String) -> some", referenced from:
BarCam4.createProfilePictureView.body.getter : some in createProfilePictureView.o
closure #1 (SwiftUI.GeometryProxy) -> <<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0 in closure #2 () -> SwiftUI.GeometryReader<<<opaque return type of (extension in SwiftUI):SwiftUI.View.navigationViewStyle(A1) -> some>>.0> in BarCam4.MainView.body.getter : some in MainView.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

@smaldd14
Copy link

I use JMAlert like so here
.JMAlert(showModal: self.$showModal, for: [.locationAlways, .notification, .tracking])
.changeHeaderDescriptionTo(permissionHeaderDescription)
.changeBottomDescriptionTo(permissionBottomDescription)

and here .JMAlert(showModal: self.$showModal, for: [.location, .notification, .tracking], onAppear: {}, onDisappear: {

            UserDefaults.standard.set(true, forKey: "onboardingComplete")
            // Wait 5 seconds, then go to HomeView
            DispatchQueue.main.async {
              ...
            }
        })
            .changeHeaderDescriptionTo(permissionHeaderDescription)
            .changeBottomDescriptionTo(permissionBottomDescription)

@jevonmao jevonmao reopened this Jun 14, 2021
@jevonmao
Copy link
Owner Author

@smaldd14 Okay, in order to figure exactly what's going wrong, I need to verify whether the error is caused by my library or your system setup because all my devices are on Big Sur or Monterey and newer Xcode.

I would like you to create a new, blank Xcode project, and install PermissionsSwiftUI like you did. Then, add the JMAlert you had and try to compile. See if you get the same error

@jevonmao
Copy link
Owner Author

Closing due to unreproducible and inactivity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers help wanted Extra attention is needed work in progres A issue that is already WIP, not open for contributing
Projects
None yet
Development

No branches or pull requests

2 participants