Problems in App Review

petros_sapetros_sa Member ✭✭

Hello,

I have been trying for a while now to submit my application to the app-store. The app keeps being rejected in the review process, for different reasons every time. The most recent rejection though seems much more serious because it is accompanied with a warning of account termination.

Probably my app uses the following:

  • LinkPresentation.framework
  • QuickLookThumbnailing.framework

I don't use any of them and I don't know which of the sdk's I link with my app may include them. The problem is the most solutions suggest I link framework sdk's only which would -in fact- solve the issue. However, my app builds but doesn't run with this linker behaviour, because of the autofac reflections. Therefore, I have to use the "Don't Link" behaviour.

Could linkskip be a solution to this? It worked with healthkit when I had a simiral issue.

Best Answer

  • petros_sapetros_sa ✭✭
    Accepted Answer

    After all, I have resolved the issue. Linker was not including Xamarin.Essentials dll so I had to add in the additional arguments this: --linkskip=Xamarin.Essentials, and then it worked, and my application was succesfully submited and passed the app review. Thank you @JohnH and @ColeX for your help.

Answers

  • ColeXColeX Member, Xamarin Team Xamurai

    Did you add some new packages after last time you submit successfully ?

    And could you provide the detailed rejection message(include specific error code) here ?

  • JohnHJohnH GBMember ✭✭✭✭✭

    You definitely should not be using Don't Link for production releases.
    The issues you are having with AutoFac, you aren't using automatic registrations are you? If you are explicitly registering your classes and interfaces, you shouldn't have any reflection issues.

  • petros_sapetros_sa Member ✭✭

    @ColeX This is my first release, I have submited the app 5-6 more times, with different issues that I had to fix, this is the first time this is mentioned. This is the message I got:
    From Apple
    2. 5 Performance: Software Requirements
    Guideline 2.5.1 - Performance - Software Requirements

    Your app uses or references the following non-public APIs:

    • LinkPresentation.framework
    • QuickLookThumbnailing.framework

    The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

    Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.

    Next Steps

    If you are using third-party libraries, please update to the most recent version of those libraries. If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool can output a list of the methods that the library calls and "otool -ov" will output the Objective-C class structures and their defined methods. These tools can help you narrow down where the problematic code resides. You could also use the "nm" tool to verify if any third-party libraries are calling these APIs.

    Resources

    If there are no alternatives for providing the functionality your app requires, you can use Feedback Assistant to submit an enhancement request.

    @JohnH I am not using automatic registration, I have registered the necesary classes one-by-one.

  • JohnHJohnH GBMember ✭✭✭✭✭

    @JohnH I am not using automatic registration, I have registered the necesary classes one-by-one.

    Then what errors are you getting when you run the app with Link SDKs?

  • petros_sapetros_sa Member ✭✭

    @JohnH said:

    @JohnH I am not using automatic registration, I have registered the necesary classes one-by-one.

    Then what errors are you getting when you run the app with Link SDKs?

    I am getting Autofac.Core.DependencyResolutionException when activating my sqlite service. It works normally when I don't link, although I know this is not the way it should be, there is currently no other way to have a functional app. Same problem persists when I link all.

  • JohnHJohnH GBMember ✭✭✭✭✭

    Hard code a dependency somewhere in your code directly to your service, that will force it to link it in. Does that resolve that issue?

  • petros_sapetros_sa Member ✭✭

    @JohnH I tried it, and after further investigation I found what's the problem exactly. The Xamarin.Essentials.Preferences is not saving values. Problem is I can't find the cause, and when I don't link the assemblies, it works fine. And when I try to debug I get this:

    Mono.Debugger.Soft.AbsentInformationException: Debug information is not available for this frame.

  • petros_sapetros_sa Member ✭✭
    Accepted Answer

    After all, I have resolved the issue. Linker was not including Xamarin.Essentials dll so I had to add in the additional arguments this: --linkskip=Xamarin.Essentials, and then it worked, and my application was succesfully submited and passed the app review. Thank you @JohnH and @ColeX for your help.

  • ColeXColeX Member, Xamarin Team Xamurai

    If problem resolved , please accept the solution as answered . @petros_sa

Sign In or Register to comment.