This script provides an easy way to codesign a DoubleDutch created iOS event app.
This script is pretty simple in the end but there are a few requirements.
Required on local system for recodesign.sh script and for recodesigning process:
- Provisioning Profile for your app (must have push entitlement and associated domains)
- Distribution Certificate, with associated private key, in Keychain Access
- We have found that this is often missed, especially in that the Certificate exists on the computer, but does not have associated private key.
- Up-to-date Xcode and Xcode Command Line Tools installed (for PlistBuddy command)
- The .ipa that to be resigned will be provided by DoubleDutch.
Some notes and explanations
- This script requires 2 arguments, it cannot run without both files.
- This app claims 2 specific entitlements: Apple's Push Notification Services, Associated Domains and Keychain Access. Push Notifications rely on a setting in the Provisioning profile
- Push Notifications Services must be enabled on your Provisioning Profile for recodesigning to be successful
- If the push notifications entitlement is not in the Provisioning Profile, this script will output the message "This provisioning profile doesn't have push entitlement!"
- Associated Domains allow the DoubleDutch created app to open an associated DoubleDutch URLs.
- Keychain Access is necessary to store the users login and password combination, so that the user can access the app, after closing and reopening, without re-logging in.
Clone this repo or download the .zip If you want the ultimate in convenience, put this repo in a safe place, then add to your $PATH
- Unzip the handoff folder that was sent to you.
- Launch terminal and run 'recodesign.sh' with minimum 2 arguments (The arguments can be run in any order.)
sh path/to/recodesign.sh path/to/app.ipa path/to/profile.mobileprovision
- There are several optional flags.
eFor Enterprise Distribution (internal distribution, but not ad hoc)
tenable TestFlight option in script (TestFlight is enabled by default)
vchange the version and use a new provisioning profile
sh path/to/recodesign.sh -e path/to/app.ipa path/to/profile.mobileprovision
sh path/to/recodesign.sh -etv path/to/app.ipa path/to/profile.mobileprovision
- When finished you will have a folder on your Desktop called 'Codesign_Output'.
- In this folder you will find the .ipa file ready to be submitted or distributed and the entitlements.plist file that was used in codesigning; this file can be helpful in troubleshooting.
- This folder will open automatically after the script has run.
An example of how this could look (file paths and names will vary):
sh recodesign.sh ~/Desktop/provided.ipa ~/Downloads/app.mobileprovision
- credit to Tim Isganitis for initial motivation
- entitlements.plist idea - avinash dongarwar
- datecheck code credit - Kyle Blake Peters
- sha1 credit to Ingo Krabbe - https://gist.github.com/commandtab/2370710