

darwin-containers create -source "macOS 13.0" -tag "macos-13.0-xcode-14.1" -manualįollow the installation instructions. In Signing & Capabilities select your team and set a unique bundle idĭownload the appropriate macOS restore image (e.g.

Open darwin-containers/DarwinContainers.xcodeproj.Checkout the latest DarwinContainers code: git clone.Steps 1-4.1 are replaced with: Running Darwin-Containers: To download an image that can be installed on the virtual machine, open the App Store, search for “Catalina” and click “View”.ĭue to compiler bugs introduced by Apple in Xcode 14 ( read more), you will need to use the modified instructions below to verify the latest builds: Install the latest version of macOS Big Sur Parallels can be obtained here, it features a fully-functional trial version. Use the steps below to verify builds compiled with XCode 13 and below, see here for XCode 14 instructions. Parallels is used to verify the builds.ĭespite the compiler bugs introduced by Apple in Xcode 14 ( read more), we were able to restore deterministic builds using manually crafted linker flags. To provide a stable and easily reproducible environment, Telegram iOS builds are compiled on a virtual machine. If Apple followed in the footsteps of Linux (and even Microsoft!) and added container support, it would eliminate the need for steps 1-3 in the guide below.Īs things stand now, you'll need a jailbroken device, at least 1,5 hours and approximately 90GB of free space to properly set up a virtual machine for the verification process. This would not affect security since the code would still be signed – and would enable anyone to check the integrity of apps supporting reproducible builds without endangering the integrity and security of their devices.īuilding your own reproducible binaries is difficult because macOS doesn't support containers like Docker. To solve this issue, Apple would simply need to allow submitting unencryptable binaries to the App Store. The two main issues with Apple's current policies and infrastructure are as follows:Īpple insists on using FairPlay encryption to “protect” even free apps from “app pirates” which makes obtaining the executable code of apps impossible without a jailbroken device. The verification process for iOS builds is, unfortunately, a lot more complex than for Android. If your APKs don't match, please make sure that you chose the correct code version and the right SDK.Ĭheck out the Troubleshooting section first in case you run into trouble.
