repack-ios plugin

fastlane Plugin Badge Gem Version Downloads License creaworks-labs

Getting Started

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

fastlane add_plugin repack_ios

About repack-ios

This plugin allows you to re-pack your existing .ipa packages with new assets or non-executable resources without rebuilding the native code. It supports fastlane's sigh and match actions to automatically detect provisioning profiles and certificates for resigning the modified ipa package. Also internally uses Gym configuration arguments to detect build related parameters like output directory etc.

You can use this plugin to modify your react-native js bundle without re-compiling the entire XCode project from the beginning. It significantly reduces the compilation time, especially useful for CI/CD based processes and also for your test automation.


The only requires arguments are ipa path for the pre-built package and contents path for the resources that would like to replace. Basic usage as follows:

  repack_ios({ ipa: "./build/ios/TestApp.ipa", output_name: "TestApp", contents: "./build/react-native/" })

You can also specify additional parameters to repack_ios action. Eg.

    ipa: "./build/ios/TestApp.ipa",
    contents: "./build/react-native/",
    match_type: "adhoc",  # Optional if you use _sigh_ or _match_
    bundle_id: "com.creaworks.fastlane-app.repacked",
    bundle_version: ENV["CI_BUILD_NUMBER"]


Key Description Default
ipa Path to your original ipa file to modify Required
output_name The product name of the Xcode target Required
contents Path for the new contents Required
app_identifier The bundle identifier of your app Default value read from Appfile's app_identifier key
entitlements Path to the entitlement file to use, e.g. myApp/MyApp.entitlements Default value can be resolved from sigh
display_name Display name to force resigned ipa to use Inherited
version Version number to force resigned ipa to use. Updates both CFBundleShortVersionString and CFBundleVersion values in Info.plist. Applies for main app and all nested apps or extensions Inherited
short_version Short version string to force resigned ipa to use (CFBundleShortVersionString) Inherited
bundle_version Bundle version to force resigned ipa to use (CFBundleVersion) Inherited
bundle_id Set new bundle ID during resign (CFBundleIdentifier) Optional
match_type Define the profile type Optional if you use sigh or match
provisioning_profile Path to your provisioning_profile. Optional if you use sigh or match

Run tests for this plugin

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


To automatically fix many of the styling issues, use

rubocop -a

Issues and Feedback

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


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


MIT © omerduzyol