iOS 15 killed my app

We are unable to install our application onto any device which has been upgraded to iOS 15. The app compiles. The app starts to install, but just prior to finishing installation this pop up appears. Not clear how to diagnose. Searched the net and can’t find anything to help. Thoughts?7519832--927854--1F0EEF26-154E-4F99-8906-1B5AE68AB970.png

We suspect the solution is to upgrade to Xcode 13.x

Not sure when this version will be offered on Unity Cloud Build

We have confirmed that compiling under Xcode 13.x resolve the installation issue.

Unfortunately Xcode 13.x is not available under Unity Cloud Build. This service is lagging far behind the curve and should get cracking. With the majority of all I-devices moving to iOS 15.x this limitation severely diminishes the value of this service and forces us to adopt a new build pipeline. Sad.

Oooh damn… client just mailed me with this problem. I use unity cloud for all my iOS builds :frowning:

Unity support suggested a post processing script to address this but it hasn’t worked for us.

CURRENT_DIR=$(pwd)
IPA_FILE=$(find $CURRENT_DIR -type f \( -iname \*.ipa \) -print -quit)
IPA_FOLDER=$(dirname "$IPA_FILE")

unzip "$IPA_FILE" -d "$IPA_FOLDER"

#change the certificate ename to yours. it's usually similar to this: "Apple Distribution: COMPANY NAME (TEAM_ID)"
CERTIFICATE_NAME="YOUR CERTIFICATE NAME"
PAYLOAD_FOLDER="$IPA_FOLDER/Payload"
APP_NAME=$(ls "$PAYLOAD_FOLDER")
APP_PATH="$PAYLOAD_FOLDER/$APP_NAME"

codesign -s "$CERTIFICATE_NAME" -f --preserve-metadata --generate-entitlement-der $APP_PATH

rm $IPA_FILE

cd "$IPA_FOLDER"

zip -r $IPA_FILE "Payload"

Same issue for me.
Too sad Unity Cloud build always lags behind. It’s not as if we paid for… :rage:

We’re shipping an app for a client and the same stuff happened while sending them a test version, they’ve already upgraded to iOS15 and now can’t install the app. Let’s hope Unity Cloud Build adds this as soon as possible before we need to ship the app to the stores :eyes:

After getting the same piece of code from support we were able to get the code working, here is how.

First your code is not correct as this is a shell script and needs the shebang at the top. (Corrected code below)
We also use multiple Developer Certs and IDs and deployment credentials so we made the CERTIFICATE_NAME variable an environment variable.

THIS IS SHELL CODE NOT csharp THERE IS NO SHELL OPTION.

#!/bin/bash

CURRENT_DIR=$(pwd)
IPA_FILE=$(find $CURRENT_DIR -type f \( -iname \*.ipa \) -print -quit)
IPA_FOLDER=$(dirname "$IPA_FILE")

unzip "$IPA_FILE" -d "$IPA_FOLDER"

#change the certificate ename to yours. it's usually similar to this: "Apple Distribution: COMPANY NAME (TEAM_ID)"

# create an environment variable with CERTIFICATE_NAME as the key so that you can dynamically change your build credentials.

# CERTIFICATE_NAME="Apple Development: FirstName LastName (CertID)"

PAYLOAD_FOLDER="$IPA_FOLDER/Payload"
APP_NAME=$(ls "$PAYLOAD_FOLDER")
APP_PATH="$PAYLOAD_FOLDER/$APP_NAME"

codesign -s "$CERTIFICATE_NAME" -f --preserve-metadata --generate-entitlement-der $APP_PATH

rm $IPA_FILE

cd "$IPA_FOLDER"

zip -r $IPA_FILE "Payload"

We placed the shell script in the Assets folder.

Here is the config we’re using successfully.

DevOps>Config>Advanced Options:
Post-Build Script Path: Assets/PostBuildResign.sh
Post-Build Script Path Fail: Yes/On

7534385--930335--Screen Shot 2021-09-29 at 5.58.21 PM.png

DevOps>Config>Environment Variables:
CERTIFICATE_NAME: Apple Development: Developer Name (Cert ID)
You can find your Certificate name in Credentials. Ours looked like this. you only need the part in red.
com.domainname.app.sand (Apple Development: FirstName LastName (Cert ID))
you can also get this information out of the full log around line 48 it will be highlighted in back.

7534385--930344--image.png 7534385--930338--Screen Shot 2021-09-29 at 6.05.50 PM.png

7534385--930344--image.png

6 Likes

As of 21 October 21, this post-build shell script is still the only way to get Unity Cloud Build to successfully create builds that work with iOS 15. Still waiting on Xcode 12.5 (and above) to be added by Unity to UCB. There is a separate thread from @rajivrao at Unity where status updates are being posted. https://discussions.unity.com/t/854204

2 Likes