This plugin generates a hierarchical view of the file structure within an unzipped IPA directory.
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.
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