現在nm -ufm
、ライブラリ ファイル内のインポートのリストを取得するために使用しています。ただし、objective-c シンボルの場合、インポートされたクラス定義しか取得していないようです。たとえば、インポートされたシンボルの一部は次のlibGoogleAdMobAds.a
とおりです。
libGoogleAdMobAds.a(GADIdentifierUtilities.o) (for architecture i386):
(undefined) weak external _CC_MD5
(undefined) external _CFBundleGetInfoDictionary
(undefined) external _CFBundleGetMainBundle
(undefined) external _CFDictionaryGetValue
(undefined) external _NSSearchPathForDirectoriesInDomains
(undefined) external _OBJC_CLASS_$_GADNumberUtilities
(undefined) external _OBJC_CLASS_$_NSArray
(undefined) external _OBJC_CLASS_$_NSBundle
(undefined) external _OBJC_CLASS_$_NSData
(undefined) external _OBJC_CLASS_$_NSDictionary
(undefined) external _OBJC_CLASS_$_NSMutableDictionary
(undefined) external _OBJC_CLASS_$_NSMutableString
(undefined) external _OBJC_CLASS_$_NSNumber
(undefined) external _OBJC_CLASS_$_NSObject
(undefined) external _OBJC_CLASS_$_NSPropertyListSerialization
(undefined) external _OBJC_CLASS_$_NSString
(undefined) external _OBJC_CLASS_$_NSURL
(undefined) external _OBJC_CLASS_$_NSUserDefaults
(undefined) external _OBJC_CLASS_$_UIApplication
(undefined) external _OBJC_CLASS_$_UIDevice
(undefined) external _OBJC_CLASS_$_UIScreen
(undefined) external _OBJC_EHTYPE_$_NSException
(undefined) external _OBJC_METACLASS_$_NSObject
(undefined) external __Unwind_Resume_or_Rethrow
(undefined) external ___CFConstantStringClassReference
(undefined) external ___objc_personality_v0
(undefined) external __objc_empty_cache
(undefined) external __objc_empty_vtable
(undefined) external _kCFBundleVersionKey
(undefined) external _kGADParameterApplicationName
(undefined) external _kGADParameterAudioOutput
(undefined) external _kGADParameterBaseSdkVersion
(undefined) external _kGADParameterCapabilitiesBookstore
(undefined) external _kGADParameterDeviceID
(undefined) external _kGADParameterDeviceModel
(undefined) external _kGADParameterDeviceSubmodel
(undefined) external _kGADParameterIPadCompatibilityMode
(undefined) external _kGADParameterITunesMetadata
(undefined) external _kGADParameterJailbroken
(undefined) external _kGADParameterLocale
(undefined) external _kGADParameterScreenDensity
(undefined) external _kGADParameterScreenHeight
(undefined) external _kGADParameterScreenOrientation
(undefined) external _kGADParameterScreenWidth
(undefined) external _objc_begin_catch
(undefined) external _objc_end_catch
(undefined) external _objc_enumerationMutation
(undefined) external _objc_msgSend
(undefined) external _objc_msgSendSuper2
(undefined) external _objc_msgSend_fpret
(undefined) external _objc_msgSend_stret
(undefined) external _strlen
(undefined) external _uname
これには、Objective-C クラスが多数リストされていますが、どのメソッドが呼び出されているかを正確に知りたいです。
私は Objective-C のメソッド呼び出しの実装の詳細についてはあまり詳しくありません (申し訳ありませんが、「メッセージの受け渡し」を意味していました) _objc_msgSend
。何らかの反射?
それにもかかわらず、ライブラリで使用される実際のメソッドのリストを取得することは可能ですか?
注: Apple ができるので、可能なはずです。uniqueIdentifier
のメソッドを使用するための iOS アプリに対する拒否を調査していますが、ここで提案されているようUIDevice
に単純なことを行うのは曖昧すぎます。文字列は、ファイル内の文字列リソースを含め、何でもかまいません。からのような、より実質的なレポートで、私が得た情報を裏付けてください。grep
grep
nm