I submitted a binary file to Apple without any source code. Apart from manually checking the source code how does Apple know what was used and what APIs you have called?
![How does Apple know you are using private API?](https://cdn-ak-scissors.b.st-hatena.com/image/square/98d6f053a97a87156775f60757c60865d0f2c47d/height=288;version=1;width=512/https%3A%2F%2Fcdn.sstatic.net%2FSites%2Fstackoverflow%2FImg%2Fapple-touch-icon%402.png%3Fv%3D73d79a89bded)
Mac / iOS 開発担当の松本です。 皆さんご存知のように iOS アプリを作るのに欠かせない Objective-C は、メソッドの解決が動的なこともあり、C言語のファミリーでありながら強力なリフレクション機能を備えています。そのリフレクションの必要性等から、実行ファイルには様々な情報が埋め込まれていて、何気なくバイナリエディタで開いただけで、テンションが上がるバイナリに仕上がっています。のぞかずにはいられませんね。という訳で今日はこのバイナリを少しのぞいてみたいと思います。 まずはバイナリの概要を抑えておきましょう。iOS 上の実行ファイルは Mach-O という形式で(まーく・おーと読むらしい)、これは Windows や Linux でいうところの EXE や ELF にあたります。この Mach-O のフォーマットについては アップルからドキュメントが提供されていますね。 細
iOSアプリでPrivate APIが使用されてないかチェックしたり、ビルドしたものをいろいろと調べるツールの紹介です。 基本的には、iOSアプリのバイナリの中身を見たりするアプリなので、 まずはバイナリを手元においておく必要があります。 開発してるアプリのプロジェクトをXCodeで開いてArchiveから、OrganizerでShareからipaファイルを出力します。 ipaファイルはzipファイルなので、拡張子をzipにするなどして解凍すると、中にアプリ名.appのフォルダがあるので、 その中に、アプリ名(拡張子なし)のファイルがバイナリファイルです sample というアプリなら、sample.ipaを解凍してsampleディレクトリができるので、 sample/Payload/sample.app/sample が対象のバイナリファイルとなっています。 ツール紹介 otool バイ
new BSDライセンスについて調べていたら、こちらの有名な事件に関してのまとめ記事に行き当たり、 NatsuLion for iPhone クローン (略) から学んだこととかまとめ その中でこんな記述がありました。 今回の場合は、まず、Twitterville が見た目上ソックリであっても、中身まで NatsuLion for iPhone のソースを使ったと示せないので、バイナリを otool してシンボルを全て比較するという手法を取りました。 へーそういうものがあるのか、とotoolの使い方などを調べてみました。 使い方 バイナリ(〜.app)のあるフォルダへ移動し、ターミナルから以下のように実行します。 otool -l {アプリ名}.app/{アプリ名} バイナリのある場所は、Xcode4を使用しているのであれば、~/Library/Developer/Xcode/Derive
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く