Bir kabuk betiği ile Mac OS X .app nasıl yapılır?


12

Birkaç öğreticiyi takip etmeyi denedim, ancak bunu alıyorum: PowerPC Hatası

Bunu nasıl düzeltebilirim? Bir info.plist'e ekledim (Başka bir uygulamanın dosyasını kopyalayıp yapıştırdım ve birkaç şey değiştirdim.)

Ayrıca, chmod +x myAppsenaryoyu çalıştırılabilir yapıyordum.

PS: El Capitan kullanıyorum


Hata mesajını almadan önce ne yaptığınızı tahmin edemiyoruz. Hangi dersleri takip ettiniz, hangi adımdan sonra takıldınız?
nohillside

1
MyApp.app adında bir klasör, ardından İçindekiler adında bir alt klasör, sonra MacOS, sonra içeren bir myApp kabuk komut dosyası oluşturdum #!/bin/bash ; say "Hi" ; exit 0(Komutların her biri farklı satırlarda ve noktalı virgülle).
Flare Cat

1
Bit setini yürüten bir bash betiğinin yürütülmesi için bir pakete yerleştirilmesi gerekmez, sadece Finder'da basitçe çift tıklayın veya Terminal'den çalıştırın. Bir uygulama paketini gerçekten istiyorsanız, AppleScript veya Automator kullanarak oluşturun, ikincisi kolaydır. Bir Kabuk Komut Dosyası Çalıştır eylemi ekleyin ve kodunuzu buna yerleştirin.
user3439894

@ user3439894 Bunu göndermeden önce açıkladığınız yöntemde automater'ı denedim, ancak uygulama hedef bilgisayarda çalışmaz.
Flare Cat

@ user3439894 Nedense önceki yorumumu düzenleyemiyorum. Hata 'Bu tür bir uygulama bu bilgisayarda desteklenmiyor' gibi bir şeydi.
Flare Cat

Yanıtlar:


21

Eh, yıllardır bu basit hileyi uygulamada bash komut dosyalarına sahip olmak için kullanıyorum (ve gerçekten tüm insanların neden "İçindekiler" klasörleri, info.plist'i oluşturmak veya Automator veya Platypus veya benzeri kullanmak gibi karmaşık çözümleri denediğini gerçekten anlamıyorum. . ????): "YourApplication.app" adlı bir klasör oluşturun. Bash komut dosyanızı doğrudan bu klasöre en uygun şekilde yerleştirin (Finder, terminal vb.). Bash betiği elbette yürütülebilir olmalıdır (gerekirse chmod + x kullanın). Diğer klasörlere veya dosyalara gerek yok (elbette komut dosyanızdan diğer komut dosyalarını veya yürütülebilir dosyaları çağırmanız gerekene kadar) Hile, komut dosyanızı uygulama klasörü ile tam olarak aynı ada sahip, ancak uzantısız olarak adlandırmaktır. Burada açıklanan durumda komut dosyası "Uygulamanız" olarak adlandırılmalıdır. Bu kadar ! Kar Leoparı'ndan Mavericks'e kadar Mac os x üzerinde çalışır. Herhangi biri daha yeni işletim sistemi sürümlerini deneyebilir ve bana söyleyebilir.

Not: komut aksi takdirde idam olmaz, büyüklüğü en az 28 byte olmalıdır. Minimum boyut elde etmek için boş çizgilerle doldurulabilir. Ayrıca, senaryonun ilk satırı bir mesele olmalıdır; örneğin #!/bin/bashveya #!/bin/perl.


Biraz daha satır eklemeye çalışın, betiğinizde yeterli satır yoksa mesajınızı verir.
Pierre Lagarde

Cevabınızı, eksik olan kritik bilgileri içerecek şekilde düzenledim ve oyları daha yüksek oyladım.
user3439894

Tamam düzeltme ve iyileştirme için teşekkürler ... Bunu çok uzun zamandır kullanıyorum ve 28 bayt ihtiyacını unuttum ... Tabii ki küçük bir senaryom yok: D
Pierre Lagarde

1
Bunu macOS Sierra altında test ettim ve orada da çalışıyor.
user3439894

1
@FlareCat Aslında, ben sadece kontrol ve mevcut bir tercüman ile herhangi bir shebang yapacağını tahmin (perl ile çalıştı). Başka dilleri denediyseniz;).
Pierre Lagarde

7

Basit bir kabuk betiğiyse, bunu bir uygulama paketine sarmanıza gerek yoktur; betiğin kendisini çift tıklatabilirsiniz. Ancak, özel bir simgeye veya bunun gibi başka şeylere sahip olma olanağınız olmaz.

Ben basit komut dosyaları sarabilir birkaç yardımcıları olduğunu düşünüyorum, ama ben deneyime sahip tek olan kabuk / python / perl / ruby ​​/ vb komutları simgeleri ile düzenli uygulamalar gibi çalışmasını sağlayan Platypus olduğunu, ben / O yönlendirmeleri vb.


Platypus iyi görünüyor, ancak manuel olarak nasıl yapılacağını bilmek harika olurdu.
Flare Cat

1
Platypus'u test ettim, tam istediğim gibi çalışıyor! Önerin için teşekkürler.
Flare Cat

1

BJB'nin cevabı hakkında yorum yapma üne sahip değilim .sh komut dosyalarına özel simgeler ekleyebilirsiniz. Görüntüyü sadece dosya için bilgi alma simgesine sürükleyin. Sanırım png olmalı ve opaklığı çalıştırabilirsiniz.


Farklı Sormaya hoş geldiniz. Cevabınızı tek başına yapmak için başka bir cevabın bir kısmını kredi ile birleştirmek iyidir. Veya yayını düzenleyin.
bmike
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.