Published Watch App install fails with empty error

I recently updated my application with embedded Watch app. Some users reported that the application does not install on their watch. Mine was ok. I had to completely remove iPhone application to reinstall it and reproduce the problem. iPhone is on 11.3 Watch on 4.3. One user report the problem while his iPhone is not yet upgraded to 11.3.


My application have accented character in its name but it has been there for years.


The tricky point is that the error message on the console gives no indication at all :

11:45:55.331887 +0200
appconduitd
0x16bdcb000 -[ACXServerInstallOperation receivedDictionaryOrData:]: 591: Got error 17 in install done from remote side (MI error (null) ; Extended 0x0 ; Desc (null))
11:45:55.332599 +0200
appconduitd
0x16bdcb000 -[ACXServerInstallOperation receivedDictionaryOrData:]: com.iphigenie.3.10: Got install done
11:45:55.333436 +0200
appconduitd
0x16bdcb000 -[ACXServerInstallOperation _onQueue_callCompletion:]: Resetting socket because of error Error Domain=ACXErrorDomain Code=17 "Got error 17 in install done from remote side (MI error (null) ; Extended 0x0 ; Desc (null))" UserInfo={SourceFileLine=591, NSLocalizedDescription=Got error 17 in install done from remote side (MI error (null) ; Extended 0x0 ; Desc (null)), FunctionName=-[ACXServerInstallOperation receivedDictionaryOrData:]}
11:45:55.334420 +0200
appconduitd
0x16bcb3000 -[ACXInstallQueue _onQueue_deQueueNextOperation]_block_invoke_2: Failed to install app com.iphigenie.3.10.watchkitapp (p = N, ui = N) : Error Domain=ACXErrorDomain Code=17 "Got error 17 in install done from remote side (MI error (null) ; Extended 0x0 ; Desc (null))" UserInfo={SourceFileLine=591, NSLocalizedDescription=Got error 17 in install done from remote side (MI error (null) ; Extended 0x0 ; Desc (null)), FunctionName=-[ACXServerInstallOperation receivedDictionaryOrData:]}
11:45:55.337546 +0200
appconduitd
0x16bee3000 -[ACXCompanionSyncConnection _onQueue_processPendingGizmoState]_block_invoke_3: Failed to install app com.iphigenie.3.10.watchkitapp : Error Domain=ACXErrorDomain Code=17 "Got error 17 in install done from remote side (MI error (null) ; Extended 0x0 ; Desc (null))" UserInfo={SourceFileLine=591, NSLocalizedDescription=Got error 17 in install done from remote side (MI error (null) ; Extended 0x0 ; Desc (null)), FunctionName=-[ACXServerInstallOperation receivedDictionaryOrData:]}


The error is on line 591 in the internal method, that's all we know. What could it be ?


Edit: A user installed Xcode and looked at the iPhone console. He found the error with a signature issue:

appconduitd 0x16bf73000 -[ACXInstallQueue _onQueue_deQueueNextOperation]_block_invoke_2: Failed to install app com.iphigenie.3.10.watchkitapp (p = N, ui = Y) : Error Domain=ACXErrorDomain Code=17 "Got error 17 in install done from remote side (MI error ApplicationVerificationFailed ; Extended 0xe8008017 ; Desc Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.LGdrVt/extracted/Payload/iPhiGéNie W.app : 0xe8008017 (A signed resource has been added, modified, or deleted.))" UserInfo={SourceFileLine=591, NSLocalizedDescription=Got error 17 in install done from remote side (MI error ApplicationVerificationFailed ; Extended 0xe8008017 ; Desc Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.LGdrVt/extracted/Payload/iPhiGéNie W.app : 0xe8008017 (A signed resource has been added, modified, or deleted.)), FunctionName=-[ACXServerInstallOperation receivedDictionaryOrData:]}


So we have a "A signed resource has been added, modified, or deleted" clue. No Swift in the application. Maybe it is related to TestFlight ? This build was uploaded and testflight loaded before publication.

Answered by Max_B in 305977022

After struggling two weeks against this issue, I finally foud an explanation and workaround.

Here is the comment I just posted on the bug report 39488346 :


OK, I now have nailed down the issue to an unicode encoding/normalization. By managing to suppress any accented character from any file (coming from the product name) in the Watch application and extension, the Apple signed binary now install correctly on the Watch.

This is a MAJOR recent regression. It appears that WatchOS has recently switched between UTF-8/UTF16 and or between NFC/NFD normalization and that the signature check has NOT been updated accordingly. This explains why codesign on MacOS does not see any signature issue, while the WatchOS reject it.

I tried to download the AppStore binary through Apple configurator and the binary showed no signature error, neither on the main app, nor on embeded WatchKit app and extension.


As I run out of ressource, I burned a TSI on this issue, request pending from april 3 and still no feedback beside the automatic acknowledge.

I can see that the Tesflight build I have made to try resolve the issue are downloaded more than expected. Can't be sur if this is due to tech trying to resolve it. Hope so.

Accepted Answer

After struggling two weeks against this issue, I finally foud an explanation and workaround.

Here is the comment I just posted on the bug report 39488346 :


OK, I now have nailed down the issue to an unicode encoding/normalization. By managing to suppress any accented character from any file (coming from the product name) in the Watch application and extension, the Apple signed binary now install correctly on the Watch.

This is a MAJOR recent regression. It appears that WatchOS has recently switched between UTF-8/UTF16 and or between NFC/NFD normalization and that the signature check has NOT been updated accordingly. This explains why codesign on MacOS does not see any signature issue, while the WatchOS reject it.

Hi Max, what console did you use to see those errors? Were the errors generated when trying to install your Watch App to the Watch from the iOS "Watch" configuration app? When attempting to install our enterprise distributed app, tapping the "INSTALL" button results in the progress indicator spinning indefinitely. I'm not sure how to retrieve logs from that operation.

I'm having the same issue. However, it doesn't happen all the time. Typically if I bump up my build number then the install will work. Does anyone know there things stand with bug report 39488346 or can shed more light on the problem?

Published Watch App install fails with empty error
 
 
Q