2011-08-12 20 views
23

Chciałbym zmienić wartość ciągu "identyfikator pakietu" w pliku plist za pomocą wiersza polecenia. Używając "defaults", jak mam to zrobić?Edycja pliku ipop ipast w linii poleceń

FYI tutaj jest plist w całości:

<?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>items</key> 
    <array> 
    <dict> 
     <key>assets</key> 
     <array> 
      <dict> 
       <key>kind</key> 
       <string>software-package</string> 
       <key>url</key> 
       <string>http://eventpilotadmin.com/doc/clients/ISES/Eventworld2011/proofs/iphone_Eventworld2011_proof.ipa</string> 
      </dict> 
     </array> 
     <key>metadata</key> 
     <dict> 
      <key>bundle-identifier</key> 
      <string>com.ativsoftware.Eventworld2011</string> 
      <key>bundle-version</key> 
      <string>1.0</string> 
      <key>kind</key> 
      <string>software</string> 
      <key>title</key> 
      <string>Eventworld2011</string> 
     </dict> 
     </dict> 
    </array> 
</dict> 
</plist> 
+0

Lepiej to usunąć i zadać pytanie na ['Ask Different'] (http://apple.stackexchange.com/), zanim uzyskasz niższe głosy. –

+2

To jest bardziej jak kodowanie, głosowałem w górę i wydaje mi się, że nie jestem jedyny :) – sorin

Odpowiedz

35

Spróbuj tego:

/usr/libexec/PlistBuddy -c "Set :items:0:metadata:bundle-identifier newidentifier" your.plist 
+0

Dziękuję bardzo, to zadziałało! – kevmalek

+0

Polecenie nie działa, ale dowiedziałem się o kumpel plist, dzięki stosy! – Aron

5

Jeśli format linia jest zgodna można zrobić z sed jak ten:

sed -n '/bundle-identifier/{p;n;s/>.*</>new value</;};p' your.plist 

W przykładzie byłoby to zmienić com.ativsoftware.Eventworld2011 do new value

Dodaj -i do edycji w miejscu.

3

@ odpowiedź user478681 za nie działa dla mnie, z powodu brakującej kroku, aby rozpakować i spakować plik IPA.

Znalazłem site z tymi krokami.

W skrócie:

unzip app.ipa 
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier newidentifier" Payload/MyApp.app/Info.plist 
zip -qr ResignedApp.ipa Payload 

Jeśli chcesz zrezygnować swoją aplikację, postępuj zgodnie z instrukcjami na wspomnianej stronie.