1. ホーム
  2. xcode

[解決済み] Mac Storeにアプリをアップロードすると、API解析の結果が大きすぎる

2022-11-25 17:20:07

質問

初めてのmacアプリをApple Storeにアップロードしようと思っています。

アイコンやカテゴリの検証バグをすべて修正しました。

しかし、その後、私は警告で検証を通過しました。

The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just an informational message.

という理由でアップロードが拒否されます。

どなたかこのようなケースを経験された方はいらっしゃいますか?


UPDATE : この警告は拒否の理由ではなく、アプリのアーカイブの問題かもしれません。アプリをストアにリリースすることに成功しました。

というわけで、無視して大丈夫です。

どのように解決するのか?

Apple は iOS アプリでプライベート API や文書化されていない API を使用することを禁じています。呼び出されたメソッドが自分で定義したものであっても、プライベートまたはドキュメント化されていない API メソッドと同じ名前のメソッドを呼び出すと、プライベート API の使用としてフラグが立てられます。

App Loaderは最初のスキャンを行い、メソッド名、インスタンス変数へのアクセス、さらにプライベートメソッド名を持つ@selectorの使用をチェックします。App Loader は常に素晴らしい仕事をするわけではなく、ソース ファイルが多ければ多いほど、生成した API 分析ファイルが大きすぎるという警告が表示される可能性が高くなります。

幸いなことに、警告が出たとしても、アプリケーションを提出することは可能です。Apple が内部的にチェックし、名前が重複していることが原因でキックバックされた場合は、もう一度審査プロセスをやり直す必要があります。

Erika Sadun は API Kit と呼ばれるスキャンを行うアプリを作ろうとしましたが、彼女はその作業を放棄し、彼女のウェブサイトからアプリケーションの痕跡を削除したようです。

Chimp Studios が作成した アプリ スキャナー を作成しましたが、これは 2011 年から更新されていません。残念ながら、大規模なプロジェクトでは -- これには CocoaPods から多くの余分なポッドを使用するプロジェクトも含まれます -- この問題を解決する現在 (2014 年) の良い方法は、プライベート API のメソッドおよびインスタンス名と衝突しないように積極的に名前を付けること以外にありません。

積極的に Apple の Cocoa の命名規則 について積極的に学び、予期するようにしましょう。そうすれば、将来の頭痛の種を減らすことができるでしょう。しかし、Apple が名前空間のようなものを導入するまでは、私たちは時々この問題に遭遇し続けるかもしれません。

invalid binary" のエラーは多くの原因から来る可能性がありますが、App Loader によって作成された API 分析ドキュメントとはまったく関係ありません。

スキャンしても、プライベート/文書化されていないAPIの使用禁止を回避する方法がまだあることを知っておく必要があります :)