Fork us on GitHub

iOS Migration Continued

Upgrading the Mac build server OS's
Post Image

iOS Migration Continued

We announced our plans to migrate to the newest version of xcode recently and so far these plans have gone rather well with most tests passing without a problem. We did decide to disable bitcode by default which means the new build hint ios.bitcode will now default to false to avoid issues with some libraries that are still not up to date.

One point of confusion from that update was whether iphone_new should still be used. The answer is NO.

You should use the iphone build target as before and we will switch the servers seamlessly.

We will perform the migration to the new servers over the course of the next 2 months as we prepare for 3.5. Since 3.5 is slated for early August we’d like to have the new servers in place by then…​

Switch Transitory Period

During the switch transitory period we will allow building to a special iphone_old target to workaround potential server regressions. If you built to the iphone_new this is the same thing and you should skip ahead if not then read this for instructions on how to temporarily workaround regressions.

You MUST report all regressions to us at once!
If you don’t file issues we will not know a regression exists and might continue the migration plan assuming everything works.

Open the build.xml file & search for the string "iphone" with the quotes. Replace it with "iphone_old" .

E.g. notice the targetType="iphone_old" line below:

<target name="build-for-ios-device" depends="clean,copy-ios-override,copy-libs,jar,clean-override">
    <codeNameOne
        jarFile="${dist.jar}"
        displayName="${codename1.displayName}"
        packageName = "${codename1.packageName}"
        mainClassName = "${codename1.mainName}"
        version="${codename1.version}"
        icon="${codename1.icon}"
        vendor="${codename1.vendor}"
        subtitle="${codename1.secondaryTitle}"

        targetType="iphone_old"
        certificate="${codename1.ios.debug.certificate}"
        certPassword="${codename1.ios.debug.certificatePassword}"
        provisioningProfile="${codename1.ios.debug.provision}"
        appid="${codename1.ios.appid}"
        />
</target>

Trial Switch

On Sunday June 19th we will switch to the new build servers so all standard iphone builds will reach the new servers. We will also setup the old servers as iphone_old servers.

On that day some builds might get "lost" in the ether of migration so if a build gets stuck cancel it…​

This will be a trial run, if everything will "just work" which is a possibility (however unlikely) this will be it.

However, if issues are reported we will probably revert back to the old servers.

Complete Switch

Assuming the trial teaches us about some issues we might do another trial but our final switch target date is July 3rd. Assuming things mostly work our correctly we aim to bring down some of our build server capacity for OS upgrade in preparation of the full switch.

This will mark the full switch to the new version of xcode.

Share this Post:

Posted by Shai Almog

Shai is the co-founder of Codename One. He's been a professional programmer for over 25 years. During that time he has worked with dozens of companies including Sun Microsystems.
For more follow Shai on Twitter & github.