しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

nmコマンドで.frameworkにUIWebViewが入っているか確認する

nmコマンドでUIWebViewを使っているか判別できるという事で検証してみました。
参考にしたのは下サイトです。

qiita.com

まずは下記事を参考に自作のframeworkを作ります。

llcc.hatenablog.com

作成したframeworkに下のようなクラスを1つ追加します。

import UIKit

public class MyClass {
}

追加したらビルドしてframeworkを生成します。
生成したframeworkはProductsグループの中に入っています。

f:id:llcc:20200525220616p:plain

実際に下コマンドでUIWebViewが含まれているか確かめてみます。

nm MyFramework.framework/MyFramework | grep UIWeb

実行結果は下の通りです。
UIWebViewを使っていないので何も出力されませんでした。

f:id:llcc:20200525220804p:plain

次は実際にUIWebViewを使うとどうなるか確かめてみます。
先程作ったクラスで下のようにUIWebViewのインスタンスを生成します。

public class MyClass {
    func test() {
        let webView = UIWebView()
    }
}

ビルドしてコマンド実行した結果は以下の通りです。
無事にUIWebViewを使っているかどうか判別できました。

f:id:llcc:20200525221023p:plain

UIWebViewは以下のようにprivateなクラスで使っている場合も検出できます。

private class MyClass {
    private func test() {
        let webView = UIWebView()
    }
}