2016-04-29 33 views
6

OS X 10.11 kullanarak bir kabuk komut dosyasını silen bir .app dosyası imzalamak 10.10 veya daha sonraki bir sürümü doğrulamak için başarısız oluyor. 10.10 ve 10.9'da oturum açabiliyorum ve 10.9, 10.10 ve 10.11'de doğrularım.OS X 10.11'de bozulmuş kabuk komut dosyası uygulamalarının imzalanması var mı?

Bunu göstermek için iki örnek uygulama ve github komut dosyasını ekledim. İki HelloWorld.app, yalnızca İçindekiler/MacOS/HelloWorld'deki ikilide değişiklik gösterir. Biri bir kabuk betiğidir, diğeri derleme objesidir. iki versiyonu için 10.11

imzalanması işleri ve doğrular:

Kabuk Komut dosyası sürümü:

codesign -s "${signing_identity}" -v shell-script/HelloWorld.app 
signed bundle with generic [liamsharp.helloworld] 

codesign -vv shell-script/HelloWorld.app 
shell-script/HelloWorld.app: valid on disk 
shell-script/HelloWorld.app: satisfies its Designated Requirement 

Objective-C sürümü:

codesign -s "${signing_identity}" -v objective-c/HelloWorld.app 
signed bundle with Mach-O thin (x86_64) [liamsharp.helloworld] 

codesign -vv objective-c/HelloWorld.app 
objective-c/HelloWorld.app: valid on disk 
objective-c/HelloWorld.app: satisfies its Designated Requirement 

Ama kabuk komut dosyası sürümü üzerinde doğrulayamazsa 10.10 ve 10.9:

codesign -vv shell-script/HelloWorld.app 
shell-script/HelloWorld.app: invalid signature (code or signature have been modified) 

Başka bir 10.11 makineye erişimim var ve .app'ın işaretçisi olduğunda aynı sorun ortaya çıkıyor. 10.9'luk bir makineye erişimim var ve bu da doğrulamada başarısız oluyor.

Kabuk betiği .app için üretilen _CodeSignature dizininde bir fark var. Ben codesign için eksik sihirli seçenek var mı

CodeDirectory 
CodeRequirements 
CodeRequirements-1 
CodeResources 
CodeSignature 
CodeTopDirectory 

:

CodeDirectory 
CodeRequirements 
CodeResources 
CodeSignature 

Ama 10.11 imzaladığında biz bazı ekstra dosyaları almak: Burada

o 10.10 imzalanan olduğunda nasıl Bunun işe yaramasına izin verilsin mi? Yoksa bir böcek mi var?

+0

Bu, OS X 10.11'de "codesign" ile bir hata gibi görünüyor. Hata ayrıca Automator'un '.definition' demetleri de etkiler. Bu hatayı Apple’a rdr: // 26297046 olarak gönderdim. –

+1

Ayrıca 26363618'i doldurdum. – CodeBuddy

+0

Teşekkür ederim. Bu soruyu sorduğun ve test vakası hazırladığın için teşekkür ederim. Bu OS X hatası ile karşılaşan başkalarını bulmak için güven verici oldu. –

cevap

1

Ben de olsa Graham, şimdi farklı bir numara Apple'dan bir yanıt aldık: Daha dinleyeyim eğer/ne zaman

Engineering has determined that your bug report is a duplicate of another issue and will be closed. 

Duplicate of 25457707 (Open) 

bir güncelleme yayınlayacağız. Düzeltme için eta'ya veya sabitlenmeye devam etmesine rağmen daha fazla ayrıntı verilmemiştir.

Güncelleme: Bu artık 10.11.5'de düzeltildi - Apple'dan hiçbir uyarı almadım, ancak şimdi bir yükseltme işleminden sonra çalışıyor.