[解決済み] AppleはどのようにしてあなたがプライベートAPIを使っていることを知るのですか?
2022-09-17 03:38:56
質問
ソースコードのないバイナリファイルをアップル社に提出しました。
手動でソースコードをチェックする以外に、Apple は何が使われたか、どの API を呼び出したかをどうやって知ることができるのですか?
どのように解決するのですか?
私が知っている方法は3つあります。私はAppleのレビューチームで働いているわけではないので、これらは単なる憶測に過ぎません。
1.
otool -L
アプリがリンクしているライブラリの一覧が表示されます。IOKitやWebKitなど、明らかに使ってはいけないものが検出されることがあります。
2.
nm -u
これは、すべてのリンクされたシンボルをリストアップします。これは
- UIImageWithName のような文書化されていない C 関数。
- UIProgressHUD などの Objective-C クラス。
-
以下のようなIvar
UITouch._phase
(の原因である可能性があります)。 を拒否しています。 を拒否する原因かもしれません)。
3. Objective-Cのセレクタをリストアップしたり
strings
Objective-C のセレクタはバイナリの特別な領域に格納されているため、Apple はそこから内容を抽出し、次のような文書化されていない Objective-C のメソッドを使用しているかどうかを確認することができます。
-[UIDevice setOrientation:]
.
セレクタはメッセージングしているクラスから独立しているので
を定義している場合でも
-setOrientation:
を定義していても、拒否される可能性があります。
あなたは エリカ・サドゥンのAPIKit を使って、プライベートAPIによる拒否の可能性(の誤報)を検出することができます。
(これらのチェックを本当に本当に回避したいのであれば、以下のような実行時機能を使用することができます。
- dlopen, dlsym
- objc_getClass、sel_registerName、objc_msgSend
-
-valueForKey:
; object_getInstanceVariable, object_getIvar, etc.
で、それらのプライベートなライブラリ、クラス、メソッド、ivarを取得します。)
関連
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] App Storeのアプリと連動させる方法
-
[解決済み] インポート vs #インポート - iOS 7
-
[解決済み】新しい自動リファレンスカウント機構はどのように機能するのですか?
-
[解決済み】「推奨アイコンファイルがありません - バンドルには、ちょうど「120x120」ピクセル、.png 形式の iPhone / iPod Touch 用のアプリアイコンが含まれていません。
-
[解決済み] Error Appstore connect : Info.plist Fileに目的の文字列がない。
-
[解決済み] 再署名 IPA (iPhone)
-
[解決済み] viewWillAppear:と-viewDidAppear:の違いは何ですか?
-
[解決済み] iPhone 5 CSSメディアクエリ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] UIPageControlのページネーションドットの色を変更するにはどうしたらよいですか?
-
[解決済み] UIButton: 選択されたハイライト状態の画像を設定する
-
[解決済み] iPhone Safari ウェブアプリでリンクを新しいウィンドウで開く
-
[解決済み] UITableViewHeaderFooterView。背景色を変更できない
-
[解決済み] 静的ライブラリのObjective-Cカテゴリ
-
[解決済み] 再署名 IPA (iPhone)
-
[解決済み] cocoaアプリケーションのinfo plistにある「bundle display name」と「bundle name」の違いは何ですか?
-
[解決済み] CALayer setNeedsDisplayInRect:] の暗黙のアニメーションを無効にする。
-
[解決済み] iOSアプリをクラッシュさせる確実な方法とは?
-
[解決済み] iPhone 5 CSSメディアクエリ