りんごの審査の穴を読む

3971 ワード

先日、アップルは突然私たちにメールを送って、私たちのappについて話したいと思っていました.これはびっくりしました.Googleで探しました.きっといいことではありません.けんかのことかもしれません.これは私をびっくりさせました.数日待って、アップルからやっと電話がかかってきました.
まず、このような状況に遭遇したら、焦らないでください.電話をかけるのは必ずしもけんかの話ではありません.ただ、いくつかのことを教えてくれるだけかもしれません.しかし、この时、あなたたちのappはすでにアップルに押されている可能性が高いことを覚えておいてください.拒否されやすいものを先に取り除いて、2ヶ月ほど波紋が過ぎたら、これらの機能を追加します.では、りんごはいったい私たちにどんなメールを送ってくれたのでしょうか.今から検討しましょう.
Your app uses or references the following non-public APIs, which is a violation of the App Store Review . Guidelines:allInstalledApplications, defaultWorkspace
The use of non-public APIs is not permitted in 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.ResourcesFor 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 logWe hope you will consider making the appropriate revisions to your app and resubmit.If you have any questions about this information, please reply to this message via Resolution Center on iTunes Connect.Thank you,JennyApp Store ReviewApple, Inc.
アップルは、プライベートapiを使用しています.あなたのappは死んだプライベートapiを使用しているか、または関連しています.これらのapiアップルは使用禁止です.allInstalledApplications、defaultWorkspaceです.この二つです.
アップルはこれらのプライベートapiの使用を禁止しています.これらのプライベートapiは悪いユーザー体験を引き起こすからです.
次のステップ:これらのプライベートapiをappから削除してください.プロジェクトのソースコードにこれらのプライベートapiと同じメソッド名が定義されている場合は、メソッド名を変更することをお勧めします.そうしないと、コミット結果に影響します.
また、サードパーティ製ライブラリを使用している場合は、最新バージョンのライブラリにアップグレードします.サードパーティ製フレームワークのソースコードにアクセスしていない場合は、stringsを使用してバイナリまたはotoolをコンパイルするコマンドラインツールを検索できます.stringsツールでは、プライベートapiを使用したメソッドのリストを出力できます.ライブラリ呼び出しと「otool-ov」は、Objective-Cクラス構造と定義されたメソッドを出力します.これらのツールは、問題のあるコードが存在する縮小に役立ちます.サードパーティ製ライブラリがこれらのAPIを呼び出す場合は、ナノツールを使用して検証することもできます.
リソース:アプリケーションに必要な機能が提供されていない場合は、拡張リクエストを送信できます.レポートの再生が困難な場合は、技術Q&A QA 1764で紹介されているワークフローをテストしてみてください.レポートのApp Storeに対してコミットされたバグをどのように再現するかをテストします.上記のリソースを利用した後、コードレベルの問題がある場合は、アップルの開発者テクニカルサポートにお問い合わせください.DTSエンジニアがフォローするときは、いつでも次のようにしてください.
  • あなたが拒否した問題の完全な詳細
  • スクリーンショット
  • ステップは、問題
  • を再現する.
  • symbolicatedクラッシュ・ログ-問題が発生するとクラッシュ・ログ
  • 以上がメールの翻訳で、最後に、私たちが使っているSDKの中でプライベートapiを使っていることを検出しました.保険のため、私たちはしばらくそのSDKを削除しました.私が使っている方法は端末コマンドを使うことです:1.まず端末を開きます:cd.....2.コマンドを入力:grep-r xxx.(例:grep-r advertisingIdentifier.)advertisingIdentifierメソッドを使用するすべてのリストが表示されます.
                        ,   ,      ,        。
               。