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?
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. –
Ayrıca 26363618'i doldurdum. – CodeBuddy
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. –