No commit activity in last 3 years
No release in over 3 years
Verify various aspects of iOS ipa file
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 2.18.2
>= 0
>= 0
>= 0

Runtime

>= 0
 Project Readme

verify_ipa plugin

fastlane Plugin Badge Gem Build Status

Getting Started

This project is a fastlane plugin. To get started with fastlane-plugin-verify_ipa, add it to your project by running:

fastlane add_plugin verify_ipa

About verify_ipa

verify_ipa is a collection of Fastlane actions that are used to test various aspects of the iOS ipa file. These actions are especially useful when used in conjunction within a CI/CD pipeline to automatically test that the exported binaries are packaged correctly.

verify_ipa_files

Sometimes it's easy to accidentally checked the wrong Xcode target membership and have wrong files included in the ipa. This could potentially be risky if the files happen to contain sensitive information. With the verify_ipa_files action it's possible to proactively define a blacklist to fail the build if certain sensitive files make their way into the ipa. e.g.

verify_ipa_files(
    blacklist: ['*.sh', '*.json']
)

verify_ipa_files(
    blacklist: ['*.{sh,rb,env}']
)

It's also possible to define a whitelist to make an exception:

verify_ipa_files(
    blacklist: ['*.sh', '*.json'],
    whitelist: ['offline_data.json']
)

In the above example, offline_data.json is allowed to be packaged in the ipa file even though the blacklist *.json disallows all json files.

verify_ipa_entitlements

Similar to the official verify_build action, this action verifies various settings of the ipa entitlements.

verify_ipa_entitlements(
    application_identifier: 'MZ6ZTY3EA7.com.apple.myapp',
    team_identifier: 'MZ6ZTY3EA7',
    aps_environment: 'production'
)

There's also an optional :other_params parameter that takes in a hash. This can be used to test all entitlement parameters in a generic way, e.g:

verify_ipa_entitlements(
    application_identifier: 'MZ6ZTY3EA7.com.apple.myapp',
    team_identifier: 'MZ6ZTY3EA7',
    aps_environment: 'production',
    other_params: {
        keychain_access_groups: ['MZ6ZTY3EA7.*'],
        get_task_allow: false,
        beta_reports_active: true
        }
)

To test application extensions, use the :extensions parameter, e.g:

verify_ipa_entitlements(
    application_identifier: 'MZ6ZTY3EA7.com.apple.myapp',
    team_identifier: 'MZ6ZTY3EA7',
    aps_environment: 'production',
    application_groups: [
        'group.com.apple.mygroup'
    ]
    extensions: {
        'My Great Extension': {
            application_identifier: 'MZ6ZTY3EA7.com.apple.myapp.ext',
            team_identifier: 'MZ6ZTY3EA7',
            application_groups: [
                'group.com.apple.mygroup'
            ]
        }
    }
)

Run tests for this plugin

To run both the tests, and code style validation, run

rake

Issues and Feedback

For any other issues and feedback about this plugin, please submit it to this repository.

Troubleshooting

If you have trouble using plugins, check out the Plugins Troubleshooting guide.

Using fastlane Plugins

For more information about how the fastlane plugin system works, check out the Plugins documentation.

About fastlane

fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out fastlane.tools.