2012-10-18 29 views
8

Ana kakao uygulamasını bir kabuktan başlatan, benim tarafımdan yapılmış basit bir unix aracı kullanıyorum. Konteyner nesne başlatma: AşağıdakiKomut satırı aracı nasıl kumlanır?

Sandbox oluşturulamadı hata mesajı görebilirsiniz console.app üzerine,:

bunu sandbox gerek ama bunu çalıştırdığınızda, bu hata "4 Yasadışı talimat" ile çöküyor başarısız oldu: visdiff

dosya için hiçbir hata açıklaması ile NİL konteyner bilgi nesnesi doğru Codesign ile imzalanır.

Ben yazı Mac OS app, sandbox with command line tool? okudum ama

+0

Belki daha fazla bilgiye ihtiyaç vardır. Aracınız uygulamanızla nasıl paketlenir? Aracı "bir kabuktan" nasıl çalıştırırsınız (kod, lütfen). Bahsettiğiniz diğer soru hakkında ne yardımcı olmadı (nerede sorun yaşadınız)? –

+0

Kod tasarımında --entitlements argümanını kullandınız mı? – Marius

cevap

5

Tam olarak bu sorunu yaşıyordum ve katıştırılmış bir Info.plist ekledim.

bu çınlama bayrakları deneyin (eğer inşa dizininde info.plist var varsayarak): Eğer com.apple.security.inherit ile yürütülebilir imzalamak durumunda

-Xlinker -sectcreate -Xlinker __TEXT -Xlinker __info_plist -Xlinker info.plist

+1

Wow tamamen saygındır. Günü kurtardın. Yapabilseydim şimdi bütün SO puanlarımı sana bağışlarım. TEŞEKKÜR EDERİM!!! – Lizza

+0

Rica ederim :) –

+0

gömülü Info.plist hangi bilgi eklediniz? Ben bu plist unix dosyası – Swati

4

konsoldan doğrudan başlattı konsol uygulaması mı yoksa bir ana korumalı alan uygulamadan denilen olduğunu yardımcı olmuyor? Bazı ikilileri sandbox çalışırken benzer bir hata aldı ve bunu yalnızca aşağıda yetkilerini kullanarak çalışması için sadece başardı: Yalnızca bir üst süreçten ikili çağırabilir bundan sonra Elbette

<dict>                                          
    <key>com.apple.security.app-sandbox</key>                                 
    <true/>                                          
    <key>com.apple.security.inherit</key>                                  
    <true/>                                          
</dict> 

o zaten korumalı (bu yüzden ikili aramanın nasıl yapıldığını sordum :)).

+0

Hayır, benim komut satırı aracı unix kabuk denir, o ana korumalı app – dafi

0

Bunun sadece diğeri tarafından çağrılabilir görünüyor Zaten kumlanmış bir uygulama. Böylece, codesign'ı çalıştırdıktan sonra onu cmdline'dan arayamazsınız.

+0

Evet - bu sorun, en az com.apple.security.app-sandbox + com.apple.security.inherit plist ile yardımcı programlayıcılarımı imzaladığım anda beni vurdu. Bir çözüm var mı? Ya da her bir yardımcı program için 'gerçek' yetkileri, örneğin bir ebeveyn uygulamasıymış gibi eklemem gerekir. com.apple.security.network.client? Dosya sistemi yetkileri konusunda endişeliyim çünkü yardımcılarımın ana klasörün sınırları dışında oldukça geniş kapsamlı bir erişime ihtiyacı olabilir. – user1475135