Skip to main content
Inspiring
May 24, 2016
Question

Air Apps for OSX: Terminal Script is not working anymore -> code object is not signed at all

  • May 24, 2016
  • 1 reply
  • 2264 views

Hi,

I hope someone can help!

I have already developed and published several Air Apps for Mac OSX before. The last one was published on the Mac App Store in July 2015 - everything worked fine back then. This week I've finished another App for OSX using Flash CC 2015 15.0.1.179 + AIR 22.0.0.137 (for Desktop). The App is working perfect on my Mac (OSX 10.11.5).

In order to replace the Iconset & entitlements I always used this Terminal Script (successfully!! 🙂 😞

cd /Users/essig/Desktop

cp MacProcess/Info.plist EyeFitness.app/Contents/Info.plist

cp MacProcess/Icon.icns EyeFitness.app/Contents/Resources/Icon.icns

chmod -R 777 EyeFitness.app

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" --entitlements MacProcess/entitlement.plist EyeFitness.app

codesign --display --entitlements - EyeFitness.app

productbuild --component EyeFitness.app /Applications Eyenstaller.pkg --sign "3rd Party Mac Developer Installer: Jan Essig"

It always worked fine and I was able to submit my App (.pkg File) to Apple via Application loader.

But now I´m getting several Error Messages - code object is not signed at all:

Last login: Tue May 24 11:03:17 on ttys000

Jans-MacBook-Pro:~ essig$ cd /Users/essig/Desktop

Jans-MacBook-Pro:Desktop essig$

Jans-MacBook-Pro:Desktop essig$ cp MacProcess/Info.plist EyeFitness.app/Contents/Info.plist

Jans-MacBook-Pro:Desktop essig$ cp MacProcess/Icon.icns EyeFitness.app/Contents/Resources/Icon.icns

Jans-MacBook-Pro:Desktop essig$ chmod -R 777 EyeFitness.app

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework

EyeFitness.app/Contents/Frameworks/Adobe AIR.framework: code object is not signed at all

In subcomponent: /Users/essig/Desktop/EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/Versions/Current/Adobe AIR_64

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0

EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/Versions/1.0: code object is not signed at all

In subcomponent: /Users/essig/Desktop/EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR_64

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app

EyeFitness.app: code object is not signed at all

In subcomponent: /Users/essig/Desktop/EyeFitness.app/Contents/Frameworks/Adobe AIR.framework

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" --entitlements MacProcess/entitlement.plist EyeFitness.app

EyeFitness.app: code object is not signed at all

In subcomponent: /Users/essig/Desktop/EyeFitness.app/Contents/Frameworks/Adobe AIR.framework

Jans-MacBook-Pro:Desktop essig$ codesign --display --entitlements - EyeFitness.app

EyeFitness.app: code object is not signed at all

Jans-MacBook-Pro:Desktop essig$ productbuild --component EyeFitness.app /Applications Eyenstaller.pkg --sign "3rd Party Mac Developer Installer: Jan Essig"

productbuild: Adding component at /Users/essig/Desktop/EyeFitness.app

productbuild: Signing product with identity "3rd Party Mac Developer Installer: Jan Essig" from keychain /Users/essig/Library/Keychains/login.keychain

productbuild: Adding certificate "Apple Worldwide Developer Relations Certification Authority"

productbuild: Adding certificate "Apple Root CA"

productbuild: Wrote product to Eyenstaller.pkg

productbuild: Supported OS versions: [10.7, )

Why is this script no longer working?

I've already revoked my old

- Mac Installer Distribution

- Mac App Distribution

- Mac Development certificates on Apple Developer

Created a new CertificateSigningRequest.certSigningRequest via Keychain

Then Created new Mac Installer Distribution, Mac App Distribution & Mac Development certificates and added them to my Keychain. I also updated the Intermediate Certificates ( Worldwide Developer Relations Certificate Authority & Developer ID Certificate Authority (and deleted the old / expired ones).

However - I'm totally stuck at the moment and hope someone can help me a bit.

Best regards and thank you ion advance

Jan

This topic has been closed for replies.

1 reply

dasessigAuthor
Inspiring
June 3, 2016

Dear Adobe Team,

I received some help from the Apple Developer Technical Support. They showed me a workaround - but there are still some issues. They suggested to contact Adobe about this problem.

Here is what  Apple Developer Technical Support wrote:

The Adobe AIR framework has some issues where it isn't compliant with the rules in Nested Code about where code and resources are expected to live within a bundle. I suggest contacting Adobe to see if they have a newer version that fixes these issues.

While strict compliance with that documentation may not affect your app today, anything that doesn't meet the requirements stated in that technical note may be rejected by code signing verification (and the Mac App Store validator, in the case of Mac App Store apps) at any point in the future without notice.

I was able to get the app to be signed with this sequence:

$ codesign -f -s "3rd Party Mac Developer Application:"  EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR_64\ Helper

$ codesign -f -s "3rd Party Mac Developer Application:"  EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR_64

$ codesign -f -s "3rd Party Mac Developer Application:"  EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR

$ codesign -f -s "3rd Party Mac Developer Application:"  EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/
$ codesign -f -s "3rd Party Mac Developer Application:"  EyeFitness.app/Contents/MacOS/Eye\ Fitness

$ codesign -f -s "3rd Party Mac Developer Application:"  EyeFitness.app

But this is a workaround. The long-term solution is to include a properly-formed framework.

1.) So this is the new Terminal Script I used without getting any Code object is not signed at all error messages:

cd /Users/essig/Desktop

cp MacProcess/Info.plist EyeFitness.app/Contents/Info.plist

cp MacProcess/Icon.icns EyeFitness.app/Contents/Resources/Icon.icns

chmod -R 777 EyeFitness.app

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR_64\ Helper

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR_64

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/MacOS/Eye\ Fitness

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" --entitlements MacProcess/entitlement.plist EyeFitness.app

codesign --display --entitlements - EyeFitness.app

product build --component EyeFitness.app /Applications Eyenstaller.pkg --sign "3rd Party Mac Developer Installer: Jan Essig"

2.) And this is what Terminal did to generate the .pkg file:

Last login: Fri Jun  3 08:31:14 on ttys000

Jans-MacBook-Pro:~ essig$ cd /Users/essig/Desktop

Jans-MacBook-Pro:Desktop essig$ cp MacProcess/Info.plist EyeFitness.app/Contents/Info.plist

Jans-MacBook-Pro:Desktop essig$ cp MacProcess/Icon.icns EyeFitness.app/Contents/Resources/Icon.icns

Jans-MacBook-Pro:Desktop essig$ chmod -R 777 EyeFitness.app

Jans-MacBook-Pro:Desktop essig$

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR_64\ Helper

EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/Versions/Current/Adobe AIR_64 Helper: replacing existing signature

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR_64

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/MacOS/Eye\ Fitness

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" --entitlements MacProcess/entitlement.plist EyeFitness.app

codesign --display --entitlements - EyeFitness.app

productbuild --component EyeFitness.app /Applications Eyenstaller.pkg --sign "3rd Party Mac Developer Installer: Jan Essig"EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/Versions/Current/Adobe AIR_64 Helper: signed Mach-O thin (x86_64) [Adobe AIR_64 Helper]

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR_64

EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/Versions/Current/Adobe AIR_64: replacing existing signature

EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/Versions/Current/Adobe AIR_64: signed Mach-O thin (x86_64) [Adobe AIR_64]

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR

EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/Versions/Current/Adobe AIR: replacing existing signature

EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/Versions/Current/Adobe AIR: signed bundle with Mach-O thin (x86_64) [com.adobe.AIR]

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/

EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/: replacing existing signature

EyeFitness.app/Contents/Frameworks/Adobe AIR.framework/: signed bundle with Mach-O thin (x86_64) [com.adobe.AIR]

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/MacOS/Eye\ Fitness

EyeFitness.app/Contents/MacOS/Eye Fitness: replacing existing signature

EyeFitness.app/Contents/MacOS/Eye Fitness: signed Mach-O thin (x86_64) [Eye Fitness]

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app

EyeFitness.app: replacing existing signature

EyeFitness.app: signed bundle [com.essig.osx.toby]

Jans-MacBook-Pro:Desktop essig$

Jans-MacBook-Pro:Desktop essig$ codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" --entitlements MacProcess/entitlement.plist EyeFitness.app

EyeFitness.app: replacing existing signature

EyeFitness.app: signed bundle [com.essig.osx.toby]

Jans-MacBook-Pro:Desktop essig$ codesign --display --entitlements - EyeFitness.app

Executable=/Users/essig/Desktop/EyeFitness.app/Contents/Info.plist

??qq?<?xml version=”1.0″ encoding=”utf-8″?>

<plist version=”1.0″>

<dict>

<key>com.apple.security.app-sandbox</key>

<true/>

<key>com.apple.security.files.user-selected.read-write</key>

<true/>

</dict>

</plist>Jans-MacBook-Pro:Desktop essig$ productbuild --component EyeFitness.app /Applications Eyenstaller.pkg --sign "3rd Party Mac Developer Installer: Jan Essig"

productbuild: Adding component at /Users/essig/Desktop/EyeFitness.app

productbuild: Signing product with identity "3rd Party Mac Developer Installer: Jan Essig" from keychain /Users/essig/Library/Keychains/login.keychain

productbuild: Adding certificate "Apple Worldwide Developer Relations Certification Authority"

productbuild: Adding certificate "Apple Root CA"

productbuild: Wrote product to Eyenstaller.pkg

productbuild: Supported OS versions: [10.7, )

Jans-MacBook-Pro:Desktop essig$

3.) Unfortunately - as soon as I try to install the App via the newly generated Eyenstaller.pkg file - the fresh installed EyeFitness.app inside mit "Programms Folder" is broken.

See Screenshots:

When trying to launch the App I get this error Message:

It says something like: You can not open the App because its corrupted or broken.

I hope you can help & fix this issue!

Best regards

Jan

Side note:

A team mate received the exact same code object not signed at all messages on his computer using the old terminal script from the initial post above. So the problem has nothing to do with the Mac certificates, my Keychain etc. - they are all fine - but with the Adobe Air Framework itself.

PATurmel12
Inspiring
June 21, 2016

There is one new file in

Contents/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/ExtendedAppEntryTemplate

you can sign or delete

Also there are a few other files you can sign or delete

Contents/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/AdobeCP15.plugin

Contents/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Flash Player.plugin

always delete this one

Contents/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/WebKit.dylib

Also, I deleted the Adobe AIR_64 Helper file since Apple claimed it required an entitlements file not provided.

dasessigAuthor
Inspiring
June 27, 2016

Hi PATurmel12,

thanks for your advice! :-)

I finally managed to publish & submit my App by using AIR 19.0.0.193. I removed the plugins you mentioned and signed it via this code:

cd /Users/essig/Desktop

cp MacProcess/Info.plist EyeFitness.app/Contents/Info.plist

cp MacProcess/Icon.icns EyeFitness.app/Contents/Resources/Icon.icns

chmod -R 777 EyeFitness.app

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR_64\ Helper

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR_64

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Adobe\ AIR

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app/Contents/MacOS/Eye\ Fitness

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" EyeFitness.app

codesign -f -v -s "3rd Party Mac Developer Application: Jan Essig" --entitlements MacProcess/entitlement.plist EyeFitness.app

codesign --display --entitlements - EyeFitness.app

productbuild --component EyeFitness.app /Applications Eyenstaller.pkg --sign "3rd Party Mac Developer Installer: Jan Essig"

It's already live on the Mac App Store:

„Eye Fitness - Your Daily Workout with Toby Tarsier“ im Mac App Store

However Apple also said :

...some of the issues you're seeing are because Adobe hasn't followed the rules in Nested Code. You should be working with Adobe on those issues at this point or at least bringing them to their attention.

The entitlements issues arise because Adobe AIR_64 Helper and ExtendedAppEntryTemplate64 are apparently executables, so they need to be sandboxed as well. Since sandboxing can affect code's behavior, you really need to talk to Adobe about this. We can't say whether just adding the entitlements will cause your app to break, nor can we offer support if it does.

This also applies to the Russian localization issue. OS X handles Russian just fine, but it sounds like something in the app didn't include a Russian localization. That goes back to how one would specify localizations in Flash.

So I guess Adobe should try to fix the newer AIR Versions :-)

Cheers

Jan