I’ve been doing a lot of work recently with Marmalade on some mobile applications. In the process, I’ve slowly fallen out of love with the build process that Marmalade provides, mostly as a result of the signing process required to publish iOS builds. I won’t weigh in on where the blame should rest for this ire of productivity, but I might as well share one of the tiny things I did to make things go ever-so-slightly faster.
We use TestFlight internally for build test distribution, so the process for distributing each build to the testers looks thus:
- Write code, watch code fail, fix code
- Test locally with emulator and USB connected devices
- Build on GCC ARM Release to launch the Marmalade Deployment Tool and package for both iOS and Android
- Launch Marmalade iPhone Re-Signer to Re-Sign the IPA for your selected provisioning profile
- Remember you have to move the base certificates into the deployment folder when the Re-Signer tells you it failed
- Let loose mumble of vulgarity OR Pull out small patch of hair to imprint that this is bad behavior
- Find the certificates and copy them to the deployment folder with the IPA
- Run Re-Signer again
- Upload builds to TestFlight
The process isn’t hard, by any reckoning, but there were…undesired consequences for some of the team members.
Obviously, something had to change. I weighed my options quickly and simply created a BATCH file to take care of launching the iPhone Re-Signer. Instead of simply launching it, the BATCH attempts to copy the required certificates into the deployment folder before launch. I haven’t had a chance to make it configurable for multiple projects, but I’ll just update the code here whenever I do have that time. Hope it helps someone!
D: cd \Tattoo\Clients\PlateShare\Apps\PlateShare\build_plateshare_vc11\deployments\iPhone\iphone\release mkdir certificates cd certificates xcopy "D:\Marmalade\6.3\s3e\deploy\plugins\iphone\certificates\Apple Root CA.cer" /y xcopy "D:\Marmalade\6.3\s3e\deploy\plugins\iphone\certificates\AppleWWDRCA.cer" /y xcopy "D:\Marmalade\6.3\s3e\deploy\plugins\iphone\certificates\developer_identity.cer" /y xcopy "D:\Marmalade\6.3\s3e\deploy\plugins\iphone\certificates\developer_identity.key" /y xcopy "D:\Marmalade\6.3\s3e\deploy\plugins\iphone\certificates\distribution_identity.cer" /y xcopy "D:\Marmalade\6.3\s3e\deploy\plugins\iphone\certificates\distribution_identity.key" /y start D:\Marmalade\6.3\tools\IPhoneSigner\IPhoneSigner.exe