tree Plugin

#Overview

This plugin generates a hierarchical view of the file structure within an unzipped IPA directory.

#How It Works

The tree command (installable via brew) lists out the files in a directory. The plugin executes this command on the unzipped IPA contents to provide a visual representation of the app's file structure, making it easy to understand the organization of resources, frameworks, and other components within the application bundle.

#Example Output

Below is an example output for an unzipped IPA file for the Authy app.

.
├── iTunesArtwork
├── iTunesMetadata.plist
├── META-INF
│   ├── com.apple.FixedZipMetadata.bin
│   └── com.apple.ZipMetadata.plist
└── Payload
    └── Authy.app
        ├── _CodeSignature
        │   └── CodeResources
        ├── AccountDeletionViewController.nib
        ├── AccountGridViewController.nib
        ├── AccountInfoViewController.nib
        ├── AccountTileViewCell.nib
        ├── AccountViewCell.nib
        ├── AddAccountCollectionViewCell.nib
        ├── AORequestDetailController.nib
        ├── AORequestsController.nib
        ├── AppConfig.plist
        ├── AppIcon60x60@2x.png
        ├── AppIcon76x76@2x~ipad.png
        ├── approval-asset.png
        ├── AppStatusView.nib
        ├── Assets.car
        ├── auth-logo-backups.png
        ├── auth-logo-backups@2x.png
        ├── AuthenticatorAccountsViewController.nib
        ├── AuthenticatorProcessing.storyboardc
        │   ├── 8Cb-Ly-4SV-view-NLi-pb-YEh.nib
        │   ├── Ebg-pU-Kit-view-Qnl-bv-ELu.nib
        │   ├── Info.plist
        │   ├── L87-mG-uaO-view-k7f-qe-jIw.nib
        │   ├── LogoVC.nib
        │   ├── NickNameVC.nib
        │   └── RootVC.nib
        ├── AuthenticatorTileView.nib
        ├── Authy
        ├── authy-symbol.png
        ├── authy-symbol@2x.png
        ├── AuthyData_AuthyData.bundle
        │   ├── CoreData.momd
        │   │   ├── CoreData.mom
        │   │   └── VersionInfo.plist
        │   └── Info.plist
        ├── AuthyHitdb.momd
        │   ├── AuthyHitdb.mom
        │   └── VersionInfo.plist
        ├── back-arrow.png
        ├── back-arrow@2x.png
        ├── backups-icon.png
        ├── backups-icon@2x.png
        ├── badge-bluetooth-share.png
        ├── badge-conscious-share.png
        ├── badge-master-share.png
        ├── badge1-half.png
        ├── badge2-half.png
        ├── badge3-half.png
        ├── BottomDialog.nib
        ├── call-btn.png
        ├── call-btn@2x.png
        ├── CallCodeView.nib
        ├── camera-icon.png
        ├── camera-icon@2x.png
        ├── ChangeEmailViewController.nib
        ├── ChangePhoneViewController.nib
        ├── Countries.plist
        ├── CountryList.storyboardc
        │   ├── CountryListVC.nib
        │   ├── Info.plist
        │   └── ZVG-vZ-WPX-view-Dpi-Je-1WU.nib
        ├── cross.png
        ├── cross@2x.png
        ├── cross@2x~ipad.png
        ├── cross@3x.png
        ├── cross~ipad.png
        ├── DeviceInfoViewController.nib
        ├── devices_icon.png
        ├── devices_icon@2x.png
        ├── devices_icon@3x.png
        ├── DevicesViewController.nib
        ├── en.lproj
        │   ├── BackupKeySetup.strings
        │   ├── Dialogs.strings
        │   ├── Home.strings
        │   ├── InfoPlist.strings
        │   ├── Invalidations.strings
        │   ├── Localizable.strings
        │   ├── NewUser.strings
        │   ├── Presentation.strings
        │   ├── Registration.strings
        │   ├── UserVerificationSelector.strings
        │   └── VerificationProcess.strings
        ├── enter_cellphone_ipad.png
        ├── enter_cellphone.png
        ├── enter-email-ref.png
        ├── EnterKeyManuallyView.nib
        ├── es.lproj
        │   ├── BackupKeySetup.strings
        │   ├── Dialogs.strings
        │   ├── Home.strings
        │   ├── InfoPlist.strings
        │   ├── Invalidations.strings
        │   ├── Localizable.strings
        │   ├── NewUser.strings
        │   ├── Presentation.strings
        │   ├── Registration.strings
        │   ├── UserVerificationSelector.strings
        │   └── VerificationProcess.strings
        ├── failed-icon.png
        ├── failed-icon@2x.png
        ├── FeatureFlagTestTableViewCell.nib
        ├── FeatureFlagTestViewController.nib
        ├── Firebase_FirebaseABTesting.bundle
        │   ├── Info.plist
        │   └── PrivacyInfo.xcprivacy
        ├── Firebase_FirebaseCore.bundle
        │   ├── Info.plist
        │   └── PrivacyInfo.xcprivacy
        ├── Firebase_FirebaseCoreExtension.bundle
        │   ├── Info.plist
        │   └── PrivacyInfo.xcprivacy
        ├── Firebase_FirebaseCoreInternal.bundle
        │   ├── Info.plist
        │   └── PrivacyInfo.xcprivacy
        ├── Firebase_FirebaseCrashlytics.bundle
        │   ├── Info.plist
        │   └── PrivacyInfo.xcprivacy
        ├── Firebase_FirebaseInstallations.bundle
        │   ├── Info.plist
        │   └── PrivacyInfo.xcprivacy
        ├── Firebase_FirebaseRemoteConfig.bundle
        │   ├── Info.plist
        │   └── PrivacyInfo.xcprivacy
        ├── FloatingDialog.nib
        ├── Frameworks
        │   ├── AuthyBusiness.framework
        │   │   ├── _CodeSignature
        │   │   │   └── CodeResources
        │   │   ├── AuthyBusiness
        │   │   ├── Info.plist
        │   │   └── SC_Info
        │   │       ├── AuthyBusiness.supf
        │   │       ├── AuthyBusiness.supp
        │   │       └── AuthyBusiness.supx
        │   ├── AuthyData.framework
        │   │   ├── _CodeSignature
        │   │   │   └── CodeResources
        │   │   ├── AuthyData
        │   │   ├── Info.plist
        │   │   └── SC_Info
        │   │       ├── AuthyData.supf
        │   │       ├── AuthyData.supp
        │   │       └── AuthyData.supx
        │   ├── AWSCore.framework
        │   │   ├── _CodeSignature
        │   │   │   └── CodeResources
        │   │   ├── AWSCore
        │   │   ├── Info.plist
        │   │   ├── PrivacyInfo.xcprivacy
        │   │   ├── SC_Info
        │   │   │   ├── AWSCore.supf
        │   │   │   ├── AWSCore.supp
        │   │   │   └── AWSCore.supx
        │   │   └── strip-frameworks.sh
        │   ├── AWSKinesis.framework
        │   │   ├── _CodeSignature
        │   │   │   └── CodeResources
        │   │   ├── AWSKinesis
        │   │   ├── Info.plist
        │   │   ├── PrivacyInfo.xcprivacy
        │   │   └── SC_Info
        │   │       ├── AWSKinesis.supf
        │   │       ├── AWSKinesis.supp
        │   │       └── AWSKinesis.supx
        │   ├── FirebaseAnalytics.framework
        │   │   ├── _CodeSignature
        │   │   │   └── CodeResources
        │   │   ├── FirebaseAnalytics
        │   │   ├── Info.plist
        │   │   └── SC_Info
        │   │       ├── FirebaseAnalytics.supf
        │   │       ├── FirebaseAnalytics.supp
        │   │       └── FirebaseAnalytics.supx
        │   ├── GoogleAppMeasurement.framework
        │   │   ├── _CodeSignature
        │   │   │   └── CodeResources
        │   │   ├── GoogleAppMeasurement
        │   │   ├── Info.plist
        │   │   └── SC_Info
        │   │       ├── GoogleAppMeasurement.supf
        │   │       ├── GoogleAppMeasurement.supp
        │   │       └── GoogleAppMeasurement.supx
        │   └── GoogleAppMeasurementIdentitySupport.framework
        │       ├── _CodeSignature
        │       │   └── CodeResources
        │       ├── GoogleAppMeasurementIdentitySupport
        │       ├── Info.plist
        │       └── SC_Info
        │           ├── GoogleAppMeasurementIdentitySupport.supf
        │           ├── GoogleAppMeasurementIdentitySupport.supp
        │           └── GoogleAppMeasurementIdentitySupport.supx
        ├── GAAccountTypeSelectorController.nib
        ├── GASetupViewController.nib
        ├── GenericColorCollectionViewCell.nib
        ├── GenericConfigs.plist
        ├── GoogleDataTransport_GoogleDataTransport.bundle
        │   ├── Info.plist
        │   └── PrivacyInfo.xcprivacy
        ├── GoogleService-Info.plist
        ├── GoogleUtilities_GoogleUtilitiesPrivacy.bundle
        │   ├── Info.plist
        │   └── PrivacyInfo.xcprivacy
        ├── Info.plist
        ├── Inter-Black.ttf
        ├── Inter-Bold.ttf
        ├── Inter-ExtraBold.ttf
        ├── Inter-ExtraLight.ttf
        ├── Inter-Light.ttf
        ├── Inter-Medium.ttf
        ├── Inter-Regular.ttf
        ├── Inter-SemiBold.ttf
        ├── Inter-Thin.ttf
        ├── InternalWebViewController.nib
        ├── InvalidationsViewController.nib
        ├── LaunchScreen.nib
        ├── line.png
        ├── line@2x.png
        ├── MainWindow.nib
        ├── NavigationController.nib
        ├── NewDeviceRequestController.nib
        ├── NewUserViewController.nib
        ├── phone_icon.png
        ├── phone_icon@2x.png
        ├── phone_icon@3x.png
        ├── PkgInfo
        ├── PlugIns
        │   ├── AuthyPushNotificationService.appex
        │   │   ├── _CodeSignature
        │   │   │   └── CodeResources
        │   │   ├── AppConfig.plist
        │   │   ├── AuthyData_AuthyData.bundle
        │   │   │   ├── CoreData.momd
        │   │   │   │   ├── CoreData.mom
        │   │   │   │   └── VersionInfo.plist
        │   │   │   └── Info.plist
        │   │   ├── AuthyPushNotificationService
        │   │   ├── Info.plist
        │   │   ├── PrivacyInfo.xcprivacy
        │   │   └── SC_Info
        │   │       ├── AuthyPushNotificationService.supf
        │   │       ├── AuthyPushNotificationService.supp
        │   │       └── AuthyPushNotificationService.supx
        │   └── AuthyWidget.appex
        │       ├── _CodeSignature
        │       │   └── CodeResources
        │       ├── Assets.car
        │       ├── AuthyData_AuthyData.bundle
        │       │   ├── CoreData.momd
        │       │   │   ├── CoreData.mom
        │       │   │   └── VersionInfo.plist
        │       │   └── Info.plist
        │       ├── AuthyWidget
        │       ├── AuthyWidget.entitlements
        │       ├── Base.lproj
        │       │   └── MainInterface.storyboardc
        │       │       ├── Info.plist
        │       │       ├── M4Y-Lb-cyx-view-37K-Sx-OkR.nib
        │       │       └── UITableViewController-M4Y-Lb-cyx.nib
        │       ├── en.lproj
        │       │   ├── MainInterface.strings
        │       │   └── WidgetLocalizable.strings
        │       ├── es.lproj
        │       │   ├── MainInterface.strings
        │       │   └── WidgetLocalizable.strings
        │       ├── Info.plist
        │       ├── PrivacyInfo.xcprivacy
        │       ├── pt.lproj
        │       │   ├── MainInterface.strings
        │       │   └── WidgetLocalizable.strings
        │       ├── SC_Info
        │       │   ├── AuthyWidget.supf
        │       │   ├── AuthyWidget.supp
        │       │   └── AuthyWidget.supx
        │       └── WidgetAppConfig.plist
        ├── PreloadViewController.nib
        ├── PrivacyInfo.xcprivacy
        ├── ProtectionPinSettingsViewController.nib
        ├── ProtectionPinUnlockViewController.nib
        ├── pt.lproj
        │   ├── BackupKeySetup.strings
        │   ├── Dialogs.strings
        │   ├── Home.strings
        │   ├── InfoPlist.strings
        │   ├── Invalidations.strings
        │   ├── Localizable.strings
        │   ├── NewUser.strings
        │   ├── Presentation.strings
        │   ├── Registration.strings
        │   ├── UserVerificationSelector.strings
        │   └── VerificationProcess.strings
        ├── qr-image.png
        ├── qr-image@2x.png
        ├── qr-image@2x~ipad.png
        ├── qr-image@3x.png
        ├── qr-image~ipad.png
        ├── register-check-icon.png
        ├── register-check-icon@2x.png
        ├── register-check-icon@2x~ipad.png
        ├── register-check-icon~ipad.png
        ├── register-locked-icon.png
        ├── register-locked-icon@2x.png
        ├── register-locked-icon~ipad.png
        ├── register-locked-icon~ipad@2x.png
        ├── RegistrationViewController.nib
        ├── RemoteConfigDefaults.plist
        ├── RequestPinViewController.nib
        ├── RequestsSettingsTableViewController.nib
        ├── SC_Info
        │   ├── Authy.sinf
        │   ├── Authy.supf
        │   ├── Authy.supp
        │   ├── Authy.supx
        │   └── Manifest.plist
        ├── ScanCodeViewController.nib
        ├── Settings.bundle
        │   ├── en.lproj
        │   │   └── Root.strings
        │   └── Root.plist
        ├── ShowTransactionPayloadViewController.nib
        ├── sms_icon.png
        ├── sms_icon@2x.png
        ├── sms_icon@3x.png
        ├── sms-btn.png
        ├── sms-btn@2x.png
        ├── SplitSettingsTableViewCell.nib
        ├── TokenAccountsConfig.plist
        ├── TokenDetailViewController.nib
        ├── TwilioPasteFormTextField.nib
        ├── TwilioPasteToast.nib
        ├── UnlockAccounts.storyboardc
        │   ├── 4Rj-37-TKP-view-okJ-6T-UNA.nib
        │   ├── Info.plist
        │   └── UnlockAccountsVC.nib
        ├── UserVerificationSelectorViewController.nib
        ├── VerificationProcessViewController.nib
        └── Watch
            └── Authy Watch.app
                ├── _CodeSignature
                │   └── CodeResources
                ├── _WatchKitStub
                │   └── WK
                ├── Assets.car
                ├── Authy Watch
                ├── Base.lproj
                │   ├── Interface-notification.plist
                │   └── Interface.plist
                ├── en.lproj
                │   └── WatchLocalizable.strings
                ├── es.lproj
                │   └── WatchLocalizable.strings
                ├── Info.plist
                ├── PkgInfo
                ├── PlugIns
                │   └── Authy Watch Extension.appex
                │       ├── _CodeSignature
                │       │   └── CodeResources
                │       ├── Assets.car
                │       ├── Authy Watch Extension
                │       ├── AuthyData_AuthyData.bundle
                │       │   ├── CoreData.momd
                │       │   │   ├── CoreData.mom
                │       │   │   └── VersionInfo.plist
                │       │   └── Info.plist
                │       ├── en.lproj
                │       │   └── WatchLocalizable.strings
                │       ├── es.lproj
                │       │   └── WatchLocalizable.strings
                │       ├── Frameworks
                │       │   ├── AuthyBusiness.framework
                │       │   │   ├── _CodeSignature
                │       │   │   │   └── CodeResources
                │       │   │   ├── AuthyBusiness
                │       │   │   ├── Info.plist
                │       │   │   └── SC_Info
                │       │   │       ├── AuthyBusiness.supf
                │       │   │       ├── AuthyBusiness.supp
                │       │   │       └── AuthyBusiness.supx
                │       │   └── AuthyData.framework
                │       │       ├── _CodeSignature
                │       │       │   └── CodeResources
                │       │       ├── AuthyData
                │       │       ├── Info.plist
                │       │       └── SC_Info
                │       │           ├── AuthyData.supf
                │       │           ├── AuthyData.supp
                │       │           └── AuthyData.supx
                │       ├── Info.plist
                │       ├── pt.lproj
                │       │   └── WatchLocalizable.strings
                │       ├── PushNotificationPayload.apns
                │       └── SC_Info
                │           ├── Authy Watch Extension.supf
                │           ├── Authy Watch Extension.supp
                │           └── Authy Watch Extension.supx
                ├── PrivacyInfo.xcprivacy
                └── pt.lproj
                    └── WatchLocalizable.strings

88 directories, 319 files