Apple has rejected my app because they believe we are using a private api. Specifically, the selector "errorMessage" in [PWZipArchive outputErrorMessage:]. I don't see how errorMessage is the same as outputErrorMessage.

Any suggestions?

    ----------
    Sep 12, 2016 at 12:21 PM
    From Apple
    2. 5 PERFORMANCE: SOFTWARE REQUIREMENTS
    Hello,

    Thank you for your response. Specifically, the selectors (“errorMessage") can be found in the method call: [PWZipArchive outputErrorMessage:].

    It would be appropriate to remove or rename them in the binary, then resubmit for review.

    Best regards,

    App Store Review


    ----------
    Sep 10, 2016 at 7:46 PM
    From shomari
    Thanks for the quick reply. How is "outputErrorMessage" considered the same as "errorMessage"?


    ----------
    Sep 10, 2016 at 6:41 PM
    From Apple
    Hello,

    Thank you for your reply and patience during extended review. Our team re-reviewed this binary to ensure our original findings were accurate. Specifically, the selectors (“ errorMessage") can be found in your app binary: [PWZipArchive outputErrorMessage:]. It would be appropriate to remove or rename them in the binary, then resubmit for review.

    Best regards,

    App Store Review


    ----------
    Sep 10, 2016 at 6:14 PM
    From shomari
    We are not using the method errorMessage. Here is the output of otool and nm

    ========
    Using the intermediate binary
    ========
    App-fqybrqlncketxzbozhwnltteapai shomari$ otool -ov ./Build/Intermediates/ArchiveIntermediates/App/BuildProductsPath/Release-iphoneos/BleachWatch.app.dSYM/Contents/Resources/DWARF/App | grep -i errorMessage

    App-fqybrqlncketxzbozhwnltteapai shomari$ nm ./Build/Intermediates/ArchiveIntermediates/App/BuildProductsPath/Release-iphoneos/BleachWatch.app.dSYM/Contents/Resources/DWARF/App | grep -i errorMessage
    00048b64 t -[PWZipArchive outputErrorMessage:]
    000000010004bae8 t -[PWZipArchive outputErrorMessage:]

    ========
    Using the debug binary
    ========
    App-fqybrqlncketxzbozhwnltteapai shomari$ otool -ov Build/Products/Debug-iphoneos/App.app/App | grep -i errorMessage
    name 0x1000b0685 outputErrorMessage:
    imp 0x100073a78 -[PWZipArchive outputErrorMessage:]

    App-fqybrqlncketxzbozhwnltteapai shomari$ nm Build/Products/Debug-iphoneos/App.app/App | grep -i errorMessage
    0000000100073a78 t -[PWZipArchive outputErrorMessage:]
    U __TTSf4s_s_d_d___TFs18_fatalErrorMessageFTVs12StaticStringS_S_Su_T_


    ----------
    Sep 10, 2016 at 5:58 PM
    From Apple
    Performance - 2.5.1


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

    errorMessage:

    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.

    Next Steps

    Please revise your app to remove any non-public APIs. If you have defined methods in your source code with the same names as the above-mentioned APIs, we suggest altering your method names so that they no longer collide with Apple's private APIs to avoid your application being flagged in future submissions.

    Additionally, 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

    For information on the "nm" tool, please see the "nm tool" Xcode manual page.

    If there are no alternatives for providing the functionality your app requires, you may wish to file an enhancement request.

    If you have difficulty reproducing a reported issue, please try testing the workflow described in Technical Q&A QA1764: How to reproduce bugs reported against App Store submissions.

    If you have code-level questions after utilizing the above resources, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:
    - complete details of your rejection issue(s)
    - screenshots
    - steps to reproduce the issue(s)
    - symbolicated crash logs - if your issue results in a crash log

    Reply Use the field below to ask questions or provide additional information to the App Review team. Learn More Submit an appeal to the App Review Board.
asked 12 Sep '16, 21:43
crucianp's gravatar image

crucianp
213

permanent link
answered 13 Sep '16, 11:43
shader's gravatar image

shader
3.9k7

Was this issue also fixed in the native 4.1.2 framework? I am not using phonegap.

(13 Sep '16, 22:03) crucianp crucianp's gravatar image

Hello.

According to information available to me, this fix is already integrated into native 4.1.2 framework.

Regards, Nikita

(14 Sep '16, 03:52) novchinnikov novchinnikov's gravatar image

Thanks! The upgrade to 4.1.2 worked. We were on 3.1.2, the last v3 build.

(15 Sep '16, 18:19) crucianp crucianp's gravatar image

Glad to hear it, feel free to contact us if you have any additional questions!

(16 Sep '16, 07:46) novchinnikov novchinnikov's gravatar image
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×352
×91
×32

question asked: 12 Sep '16, 21:43

question was seen: 603 times

last updated: 16 Sep '16, 07:46