SORU
21 HAZİRAN 2011, Salı


en iyi şekilde iOS ayarları için lisans bölümü eklemek için paket

İOS uygulamam üçüncü parti bileşenler Apache 2.0 ve beni metin çeşitli bit, bu tür bir şey eklemek gerekir ki benzer bir lisans altında lisanslı bir dizi kullanır:

* Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the
  documentation and/or other materials provided with the distribution.

Bir 'Lisans' ayarları paket (ipad facebook sayfaları, açılış, sayılar ve wikipanion tüm bu yapmak gibi) alt giriş. altında bu bilgileri koymak için makul bir emsal var

Ben mücadeleci bir bit için aslında elde aynı olsa da; sanırım gerek bölünmüş metin satır satır ve içine girin " Güncellemelerinden bir satırında bir zaman (ve xcode4 gibi görünüyor çökmesini bir sorun olduğunda düzenleme plists).

Neredeyse kesinlikle bir yerlerde bir senaryo, ya da ben kaçırmıştım bunu yapmak için bazı basit bir yolu var bir şey gibi görünüyor.

CEVAP
23 HAZİRAN 2011, PERŞEMBE


Şimdi koşuyordum tüm sorunları çözmek için yönetilen düşünüyorum.

  • En iyi grup eleman başlıklar lisansları (bu Apple çalışıyorum uygulamalar içinde ne olduğunu) tutmak için kullanmak gibi görünüyor. Ancak bu uzunluğu (ve henüz sınırı tam olarak keşfettim) bir sınırı yoktur, birden çok dize halinde her bir lisans dosyası kırmak gerekir.
  • Edebi bir satır başı (yani. bu içinde bir satır sonu oluşturabilirsiniz aksi halde ^M, \r veya 0x0A) olarak bilinir
  • Emin herhangi bir edebi vardır yapmak değil "mid-metin s. Eğer bunu yaparsanız, dosya içinde dizeleri bazı veya tüm sessizce göz ardı alacak.

Bu üretmek için kullanıyorum kullanışlı bir script var .plist ve .dizeleri dosya, aşağıda gösterildiği.

Kullanmak için:

  1. Bir 'lisans' projesi kapsamında . dizin oluşturma
  2. Bu dizine script koymak
  3. Bu dizin, dosya başına bir dosya ile bu amaçla her lisans koy .lisans
  4. Lisansları gerekli herhangi bir yeniden biçimlendirme gerçekleştirmek. (örn. satır başında fazladan boşluk, orta paragraf satır sonu yok emin olun) çıkarın. -Her paragraf arasında bir boş satır olmalıdır
  5. Lisans dizini değiştirin ve komut dosyasını çalıştırın
  6. Ayarlarınızı paket Kök düzenleyin.alt bölüm adı eklemek için plist 'Teşekkür'

İşte senaryo:

#!/usr/bin/perl -w

use strict;

my $out = "../Settings.bundle/en.lproj/Acknowledgements.strings";
my $plistout =  "../Settings.bundle/Acknowledgements.plist";

unlink $out;

open(my $outfh, '>', $out) or die $!;
open(my $plistfh, '>', $plistout) or die $!;

print $plistfh <<'EOD';
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>StringsTable</key>
        <string>Acknowledgements</string>
        <key>PreferenceSpecifiers</key>
        <array>
EOD
for my $i (sort glob("*.license"))
{
    my $value=`cat $i`;
    $value =~ s/\r//g;
    $value =~ s/\n/\r/g;
    $value =~ s/[ \t] \r/\r/g;
    $value =~ s/\"/\'/g;
    my $key=$i;
    $key =~ s/\.license$//;

    my $cnt = 1;
    my $keynum = $key;
    for my $str (split /\r\r/, $value)
    {
        print $plistfh <<"EOD";
                <dict>
                        <key>Type</key>
                        <string>PSGroupSpecifier</string>
                        <key>Title</key>
                        <string>$keynum</string>
                </dict>
EOD

        print $outfh "\"$keynum\" = \"$str\";\n";
        $keynum = $key.(  $cnt);
    }
}

print $plistfh <<'EOD';
        </array>
</dict>
</plist>
EOD
close($outfh);
close($plistfh);

Ayarlarınızı ayarlama.bundle

Ayarlar oluşturduğunuz değil varsa.paket, -- ^ Dosya gidin . Yeni -->Yeni Dosya...

Kaynak bölümünde, Ayarları Paket bulmak. Varsayılan adı kullanın ve projenizin kök dizinine kaydedin.

Settings.bundle grubu genişletin ve Root.plist seçin. Anahtar 8 ** türü Preference Items olacak yeni bir bölüm eklemek gerekir. Aşağıdaki bilgileri ekleyin:

enter image description here

Filename tuşuna bu komut tarafından oluşturulan plist işaret eder. İstediğin title değiştirebilirsiniz.

Yapı Anda Çalıştırabiliriz

Eğer bu senaryo projenizi oluşturduğunuz zaman çalıştırmak istiyorsanız ayrıca, size hedef için inşa aşaması ekleyebilirsiniz:

  1. Proje dosyasına git
  2. Hedef seçin
  3. Tıklayın Evreleri sekme Oluştur
  4. Bu bölmenin sağ alt köşesinde tıklayın 'Faz Ekleyin İnşa'
  5. 'Komut Dosyası Ekle' Seçeneğini Seçin
  6. Ve size senaryo için bölüme perl script sürükleyip bırakın. Değiştir böyle bir şey için:

1 cd /Kullanıcılar/Kullanıcı adı/Proje/lisans
2 ./yourScriptName.pl

Hızlı ipucu: Eğer projeniz yolu boşluk içeriyorsa, \ karakter ile onları kaçmak için emin olun. Bu gibi:

/Kullanıcılar/Kullanıcı adı/Apps/\ iPhone\/lisans Proje/Belgeler

Bunu bitirdikten sonra, Run Script er faz inşa sürecinde yapı sürükleyebilirsiniz. Bu Ayarları güncelleştirmeleri Paket derlenmiş ve kopyalanan yüzden o Compile Sources önce yukarı taşımak istiyorum.

İOS için güncelleme 7:iOS 7 "Başlık" farklı anahtar ve işlenen metin kurcalıyor. kolu gibi görünüyor Oluşturulan Bildirimleri düzeltmek için.plist kullanması gerekir "yerine" Başlık". anahtar FooterText Senaryoyu değiştirmek için nasıl:

for my $str (split /\r\r/, $value)
{
    print $plistfh <<"EOD";
            <dict>
                    <key>Type</key>
                    <string>PSGroupSpecifier</string>
                    <key>FooterText</key> # <= here is the change
                    <string>$keynum</string>
            </dict>
 EOD

    print $outfh "\"$keynum\" = \"$str\";\n";
    $keynum = $key.(  $cnt);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009
  • Elly Awesome

    Elly Awesome

    15 ŞUBAT 2010
  • Emotional Trancer

    Emotional Tr

    4 Mart 2010