0.08
No commit activity in last 3 years
No release in over 3 years
Analyze an iOS .ipa file. Can be used as a CLI and can print the information in JSON so it can be used by other tools.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0

Runtime

>= 3.1.0, ~> 3.1
>= 1.1.7, ~> 1.1.7
 Project Readme

ipa_analyzer

iOS IPA file analyzer.

Can be used directly in Ruby projects (it requires OS X as it's platform to perform Plist file conversions!) or as a CLI in your Command Line / Terminal.

You can use this GEM by adding it to your Gemfile:

gem 'ipa_analyzer'

Or install it as a system-wide GEM / CLI:

gem install ipa_analyzer

Usage example

If used as a CLI:

ipa_analyzer -i /path/to/app.ipa -p --info-plist --prov

This will collect and print both the embedded mobileprovisioning and the Info.plist, in a pretty printed JSON output.

The output of this command looks like this:

{
  "mobileprovision": {
    "path_in_ipa": "Payload/MyApp.app/embedded.mobileprovision",
    "content": {
      "AppIDName": "Xcode iOS Wildcard App ID",
      "ApplicationIdentifierPrefix": [
        "XXXA8V3XXX"
      ],
      "CreationDate": "2014-05-10T11:57:32+00:00",
      "Entitlements": {
        "application-identifier": "XXXA8V3XXX.*",
        "get-task-allow": true,
        "keychain-access-groups": [
          "XXXA8V3XXX.*"
        ]
      },
      "ExpirationDate": "2015-05-10T11:57:32+00:00",
      "Name": "ProfileName",
      "ProvisionedDevices": [
        "xxx49cbdf9ad932exxx",
        "xxx968f2842d3601xxx",
        "xxxedb81abefddfbxxx",
        "xxx80001152f6f44xxx",
        "xxxe3b76df6e99d0xxx"
      ],
      "TeamIdentifier": [
        "XXXA8V3XXX"
      ],
      "TeamName": "Team Name",
      "TimeToLive": "365",
      "UUID": "XXX-3D5D-4BCC-9288-XXX",
      "Version": "1"
    }
  },
  "info_plist": {
    "path_in_ipa": "Payload/MyApp.app/Info.plist",
    "content": {
      "BuildMachineOSBuild": "14B25",
      "CFBundleDevelopmentRegion": "en",
      "CFBundleExecutable": "MyApp",
      "CFBundleIdentifier": "com.company.MyApp",
      "CFBundleInfoDictionaryVersion": "6.0",
      "CFBundleName": "MyApp",
      "CFBundlePackageType": "APPL",
      "CFBundleShortVersionString": "1.0",
      "CFBundleSignature": "????",
      "CFBundleSupportedPlatforms": [
        "iPhoneOS"
      ],
      "CFBundleVersion": "1",
      "DTCompiler": "com.apple.compilers.llvm.clang.1_0",
      "DTPlatformBuild": "12B411",
      "DTPlatformName": "iphoneos",
      "DTPlatformVersion": "8.1",
      "DTSDKBuild": "12B411",
      "DTSDKName": "iphoneos8.1",
      "DTXcode": "0611",
      "DTXcodeBuild": "6A2008a",
      "LSRequiresIPhoneOS": "true",
      "MinimumOSVersion": "8.1",
      "UIDeviceFamily": [
        1,
        2
      ],
      "UILaunchStoryboardName": "LaunchScreen",
      "UIMainStoryboardFile": "Main",
      "UIRequiredDeviceCapabilities": [
        "armv7"
      ],
      "UISupportedInterfaceOrientations": [
        "UIInterfaceOrientationPortrait",
        "UIInterfaceOrientationLandscapeLeft",
        "UIInterfaceOrientationLandscapeRight"
      ],
      "UISupportedInterfaceOrientations~ipad": [
        "UIInterfaceOrientationPortrait",
        "UIInterfaceOrientationPortraitUpsideDown",
        "UIInterfaceOrientationLandscapeLeft",
        "UIInterfaceOrientationLandscapeRight"
      ]
    }
  }
}

Requirements

  • OS: OS X (tested on 10.10 Yosemite)