verify_ipa plugin
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.