Skip to content

Add IPAInspectorView wireframe and security inspection features - #1

Merged
nagpal-saurav merged 13 commits into
mainfrom
feature/ipa-inspection
Jul 17, 2026
Merged

Add IPAInspectorView wireframe and security inspection features#1
nagpal-saurav merged 13 commits into
mainfrom
feature/ipa-inspection

Conversation

@nagpal-saurav

Copy link
Copy Markdown
Contributor

This pull request introduces several new reusable UI components, improves visual consistency, and enhances accessibility across the design system. It also updates the app version and expands the design tokens for colors, spacing, and fonts. The most important changes are grouped below.


New Reusable UI Components

  • Added ConsoleView, a reusable terminal-style log output component with a clear button and scrollable area.
  • Added InfoRow, a reusable row for displaying file/item information with icon, title, and subtitle.
  • Added ScreenShell, a standardized background and scrollable content shell for screens.
  • Added WatercolorBackground, a reusable decorative background view.
  • Added FileBrowserView, a composed file selection control combining picker and drag-and-drop.
  • Added HomeFileSection, a reusable section for IPA file input with helper text and file status.
  • Added FrameworkInfo model to represent embedded frameworks in IPA inspection.

Visual and Theming Improvements

  • Updated AppCard, FileDropView, and fieldContainer to use new AppColors.cardSurface and AppColors.cardShadow for improved elevation and consistency. [1] [2] [3]
  • Refined color palette in AppColors, adding new backgrounds, surfaces, gradients, and shadow tokens. [1] [2]
  • Expanded AppFont with additional heading, caption, and small font styles.
  • Added extra-small (xxs) spacing token.

Accessibility and Interaction Enhancements

  • Improved FileDropView accessibility: added focus, keyboard activation, and descriptive labels/hints. Also added animated hover state and direct file picker trigger on click. [1] [2]
  • Updated text colors for better contrast and consistency in drop zones and secondary UI elements.

Navigation and App Metadata

  • Added .ipaInspector case to RootView for navigation to the IPA Inspector feature.
  • Bumped MARKETING_VERSION to 2.0 in project settings. [1] [2]

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new “IPA Inspector” feature (UI + state/model + service layer) that can extract basic IPA metadata, scan embedded frameworks, and run signing/security-related diagnostics, while also expanding and standardizing the app’s design-system tokens/components.

Changes:

  • Introduces an IPA inspection pipeline (IPAInspectionService) and associated domain models for metadata, signing, entitlements, architectures, and frameworks.
  • Adds a new IPA Inspector screen (dashboard + collapsible sections + console) and wires it into sidebar navigation and RootView.
  • Expands the design system (colors, fonts, spacing) and refactors existing screens/components to use new reusable UI building blocks.

Reviewed changes

Copilot reviewed 39 out of 39 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
IPASignCraft/Service/IPAInspection/IPAInspectionServicing.swift Adds inspection service protocol contract.
IPASignCraft/Service/IPAInspection/IPAInspectionService.swift Implements IPA extraction + metadata/security/framework inspection.
IPASignCraft/Service/IPAExtractorService.swift Improves unzip validation + error reporting.
IPASignCraft/Features/Sidebar/SidebarView.swift Adds “IPA Inspector” navigation entry.
IPASignCraft/Features/Sidebar/Model/SidebarItem.swift Adds .ipaInspector enum case.
IPASignCraft/Features/Resign/View/HomeView.swift Refactors to use ScreenShell, HomeFileSection, InfoRow.
IPASignCraft/Features/IPAInspector/ViewModel/IPAInspectorDetailViewModel.swift Adds inspector view model + async inspection runner + logging.
IPASignCraft/Features/IPAInspector/View/sections/KeyValueRow.swift Adds reusable key/value UI row.
IPASignCraft/Features/IPAInspector/View/sections/IPASigningView.swift Adds signing/provisioning details section UI.
IPASignCraft/Features/IPAInspector/View/sections/IPASecurityView.swift Adds security diagnostics dashboard section UI.
IPASignCraft/Features/IPAInspector/View/sections/IPAOverviewView.swift Adds overview dashboard section UI.
IPASignCraft/Features/IPAInspector/View/sections/IPAGeneralView.swift Adds general metadata section UI.
IPASignCraft/Features/IPAInspector/View/sections/IPAFrameworksView.swift Adds frameworks table section UI.
IPASignCraft/Features/IPAInspector/View/sections/IPAEntitlementsView.swift Adds entitlements/capabilities section UI.
IPASignCraft/Features/IPAInspector/View/sections/IPABinaryView.swift Adds binary/architectures section UI.
IPASignCraft/Features/IPAInspector/View/IPAInspectorView.swift Adds main inspector dashboard layout + console + sections.
IPASignCraft/Features/IPAInspector/View/Components/StatCard.swift Adds reusable stat card component.
IPASignCraft/Features/IPAInspector/View/Components/CollapsibleSection.swift Adds reusable collapsible section component.
IPASignCraft/Features/IPAInspector/Model/IPAInspectorState.swift Adds centralized inspector state model.
IPASignCraft/Domain/Models/IPAInspection/ParsedIPAInfo.swift Adds intermediate parsed Info.plist model.
IPASignCraft/Domain/Models/IPAInspection/IPAInspectorSection.swift Adds section enumeration + UI helpers.
IPASignCraft/Domain/Models/IPAInspection/IPAInspectionError.swift Adds typed errors for inspection pipeline.
IPASignCraft/Domain/Models/IPAInspection/IPAInspection.swift Adds root inspection result model + mock.
IPASignCraft/Domain/Models/IPAInspection/InspectorInfoCard.swift Adds compact info card component.
IPASignCraft/Domain/Models/IPAInspection/FrameworkInfo.swift Adds framework/dylib info model + mock.
IPASignCraft/DesignSystem/Tokens/Spacing.swift Adds xxs spacing token.
IPASignCraft/DesignSystem/Tokens/AppFont.swift Expands font token set (headings/caption/small).
IPASignCraft/DesignSystem/Tokens/AppColors.swift Expands palette and adds surface/shadow/gradient tokens.
IPASignCraft/DesignSystem/Extensions/View+Field.swift Updates fieldContainer styling to new surface/shadow.
IPASignCraft/DesignSystem/Components/HomeFileSection.swift Adds reusable “IPA File” input section.
IPASignCraft/DesignSystem/Components/FileDropView.swift Improves drop-zone styling + hover + accessibility + click-to-browse.
IPASignCraft/DesignSystem/Components/FileBrowserView.swift Adds composed picker + drop control.
IPASignCraft/DesignSystem/Components/Common/WatercolorBackground.swift Extracts reusable watercolor background component.
IPASignCraft/DesignSystem/Components/Common/ScreenShell.swift Adds standard screen shell with background + scrolling.
IPASignCraft/DesignSystem/Components/Common/ListRow/InfoRow.swift Adds reusable icon/title/subtitle row.
IPASignCraft/DesignSystem/Components/Common/ConsoleView.swift Adds reusable terminal-style console component.
IPASignCraft/DesignSystem/Components/Cards/AppCard.swift Updates card surface/shadow styling.
IPASignCraft/App/RootView/RootView.swift Routes .ipaInspector to IPAInspectorView.
IPASignCraft.xcodeproj/project.pbxproj Bumps marketing version to 2.0.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +8 to +15
import Foundation

/// Encapsulates all state for the IPA Inspector feature.
///
/// This state object is owned by the view model
/// and published to views for reactive updates.
@Observable
final class IPAInspectorState {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in commit fix: add missing import Observation to IPAInspectorState.swift — added import Observation to IPAInspectorState.swift so the @Observable macro is available explicitly.

Comment thread IPASignCraft/DesignSystem/Extensions/View+Field.swift
Comment thread IPASignCraft/DesignSystem/Components/Cards/AppCard.swift
Comment thread IPASignCraft/Service/IPAInspection/IPAInspectionService.swift
Comment thread IPASignCraft/Service/IPAInspection/IPAInspectionService.swift Outdated
Comment thread IPASignCraft/Features/IPAInspector/View/IPAInspectorView.swift
Comment thread IPASignCraft/DesignSystem/Components/FileDropView.swift Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
nagpal-saurav and others added 7 commits July 16, 2026 17:59
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…esBlog/ipa-sign-craft into feature/ipa-inspection

* 'feature/ipa-inspection' of https://github.com/TechStoriesBlog/ipa-sign-craft:
  CR Comment: Address error handling.
  CR Comment: UX tap two times may cause double processing
  CR 16: Fix the description.
  CR Comment: Reflect the security check
  Security View Fix
  Potential fix for pull request finding
  Fix field container shadow
  fix: add missing import Observation to IPAInspectorState.swift

# Conflicts:
#	IPASignCraft/DesignSystem/Extensions/View+Field.swift
@nagpal-saurav
nagpal-saurav merged commit ae8039f into main Jul 17, 2026
1 check failed
@nagpal-saurav
nagpal-saurav deleted the feature/ipa-inspection branch July 17, 2026 05:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants