1

Trying to resolve this error deploying a small sample app generated from start.gluon.io to an attached iPad running iOS 15.2 from macOS 10.15.7

[Mon Dec 27 20:17:53 GMT 2021][INFO] [SUB] [ 52%] CreatingStagingDirectory
[Mon Dec 27 20:17:53 GMT 2021][INFO] [SUB] [ 57%] ExtractingPackage
[Mon Dec 27 20:17:53 GMT 2021][INFO] [SUB] [ 60%] InspectingPackage
[Mon Dec 27 20:17:53 GMT 2021][INFO] [SUB] [ 60%] TakingInstallLock
[Mon Dec 27 20:17:53 GMT 2021][INFO] [SUB] [ 65%] PreflightingApplication
[Mon Dec 27 20:17:53 GMT 2021][INFO] [SUB] [ 65%] InstallingEmbeddedProfile
[Mon Dec 27 20:17:53 GMT 2021][INFO] [SUB] [ 70%] VerifyingApplication
[Mon Dec 27 20:17:53 GMT 2021][INFO] [SUB] 2021-12-27 20:17:53.522 ios-deploy[4411:85868] [ !! ] Error 0xe8008029: unknown. AMDeviceSecureInstallApplication(0, device, url, options, install_callback, 0)

The dummy Xcode app was signed and deployed to the attached iPad ok although had to specify an additional --generate-entitlement-der to the signing config for Xcode 12.

Am following the instructions at https://docs.gluonhq.com/#_build_your_application118. Plist edited for the bundle id, using my apple developer account provisioning profile and hit the above error. Docs say to add <verbose>true</verbose> in the GluonFX plugin can be of help, so I've added to the <configuration> of the plugin artefact and rerun ./mvnw gluonfx:link and nativerun and neither seems to log any additional messages.

Any ideas where to go from here please, either to make the build more verbose to check it's picking up the correct provisioning profile or other clues how to pass the verification once the .app is copied to the iPad please?

Hamish258
  • 305
  • 2
  • 9
  • 1
    Do you have the latest plugin? No need to edit the plist file, you can use `appIdentifier`, and sign using `releaseConfiguration`. In any case verify the logs under `gvm/logs` for the correct signing identity and profile. Uninstall any previous app from your device if you did install it before. – José Pereda Dec 27 '21 at 21:49
  • Thanks for the logs José, that helped. I can see it's picking up the wildcard in the signing identity and all that goes well, no issues I can spot. I do wonder if the problem is related to https://stackoverflow.com/questions/68467306/the-code-signature-version-is-no-longer-supported. I had to add the --generate-entitlement-der in the signing config in Xcode for the dummy app, and the call to codesign in the logs doesn't have that. I'm on Xcode 12 and iPad is iOS 15.2 so the exact use case. Is there any way I can quickly add that flag somewhere to see if it makes a difference plse? – Hamish258 Dec 27 '21 at 23:46
  • Meant to say, yes, got the latest plugin 1.0.10, thanks! – Hamish258 Dec 27 '21 at 23:51
  • 1
    I didn't know about that entitlement requirement. As a quick fix: you would need to clone, modify [Substrate](https://github.com/gluonhq/substrate/blob/master/src/main/java/com/gluonhq/substrate/util/ios/CodeSigning.java#L237), build it locally, clone and build locally the [plugin](https://github.com/gluonhq/gluonfx-maven-plugin), and then use the local snapshot 1.0.11-SNAPSHOT to run `mvn gluonfx:build gluonfx:package`. If that works fine (signing gets to 100%), then you can finally run `mvn gluonfx:install gluonfx:nativerun`. – José Pereda Dec 27 '21 at 23:57
  • You can file an issue [here](https://github.com/gluonhq/substrate/issues) nonetheless. – José Pereda Dec 27 '21 at 23:57
  • Above worked, cloned and added the codesign flag, and once I figured out the lifecycle changed at 1.0.11 in that install is now for iOS as well as Android the app deployed and ran. Some issue with presenting a blank screen and hanging the iPad which were resolved by unplugging it (guess it's related to the usb max stuff as I couldn't use --HEAD when installing as latest is broken and won't install). – Hamish258 Dec 28 '21 at 11:10
  • Great, good to know. I've filed https://github.com/gluonhq/substrate/issues/1078. Btw, I've already mentioned the goals you needed to run in my previous comment. What do you mean with "latest is broken"? – José Pereda Dec 28 '21 at 12:21
  • Yes the goals were clear once I’d realised they were not the same as the iOS instructions I was following from https://docs.gluonhq.com/#_build_your_application118 – Hamish258 Dec 28 '21 at 13:27
  • The —HEAD comment referred to the libimobiledevice and usbmux packages that the doc says to install for macOS deploy to iOS. The head on those packages is broken at the moment and won’t install, so dropped —HEAD and they installed ok. – Hamish258 Dec 28 '21 at 13:29
  • 1
    Issue has been fixed in Substrate (no release yet though). Docs will be updated soon – José Pereda Dec 28 '21 at 14:20
  • Awesome work José, and thanks for checking it does no harm with later Xcode versions, I wasn't able to do that – Hamish258 Dec 29 '21 at 13:07

1 Answers1

0

Issue is related to running Xcode 12.4 and attempting to deploy to an iOS 15 device. Later versions of Xcode available on newer macOS versions may not encounter this. Apple have added some cert requirements as per The code signature version is no longer supported.

Was able to sign and deploy by following the advice of José Pereda in the comments, ie cloning the Gluon substrate repo and adding the --generate-entitlement-der to the codesign call.

Hamish258
  • 305
  • 2
  • 9