2011-07-04 17 views
9

Mam niektóre aplikacje Chcę zrezygnować z innej licencji jabłko DeveloperRezygnując aplikację zewnętrzną Xcode

Problem w tym, że nie masz kodu źródłowego, tylko plik IPA, aplikacji i archiveinfo.plist Is It możliwe, że mogę zrezygnować z aplikacji, jeśli nie mam kodu źródłowego?

Dzięki! Ompah

+0

Możesz spróbować [www.aironapp.com] (http://www.aironapp.com). Może automatycznie dokonać repozytorium IPA. Najpierw musisz skonfigurować swoje konto Apple (certyfikat wysyłania i klucze prywatne). – shader

+0

Prosta odpowiedź skryptu powłoki: http://stackoverflow.com/a/10905855/190599 – CodeReaper

Odpowiedz

23

Możliwość zastąpienia podpisu na już podpisanym pliku binarnym jest wbudowana w narzędzie codeign. W ten sposób, jeśli twój certyfikat programisty wygasa (jak to często irytująco), nie musisz odbudowywać swojej aplikacji.

Może to być ważne, zwłaszcza jeśli potrzebujesz obsługi starej wersji aplikacji i wprowadziłeś zmiany w kodzie od czasu zarchiwizowania IPA.

Zwykle używam tego skryptu. Przydaje się do handlu debugowaniem kompilacji IPA z osobami, które mają własne konta programistów i dla których nie chcę nagrywać gniazda UDID, i którzy nie chcą ładować moich profili udostępniania na swoich urządzeniach.

#!/bin/sh 

TEMPDIR=/tmp/$RANDOM-$RANDOM-$RANDOM 
RESOURCERULES=/tmp/ResourceRules-$RANDOM$RANDOM.plist 
CURRENTDIR=`pwd` 

mkdir -p "$TEMPDIR" 

cat - > "$RESOURCERULES" <<ResourceRulesPlistDelimiter 
<?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>rules</key> 
    <dict> 
     <key>.*</key> 
     <true/> 
     <key>Info.plist</key> 
     <dict> 
      <key>omit</key> 
      <true/> 
      <key>weight</key> 
      <real>10</real> 
     </dict> 
     <key>ResourceRules.plist</key> 
     <dict> 
      <key>omit</key> 
      <true/> 
      <key>weight</key> 
      <real>100</real> 
     </dict> 
    </dict> 
</dict> 
</plist> 
ResourceRulesPlistDelimiter 

unzip -q "$1" -d "$TEMPDIR" || exit 1 
xattr -d -r com.apple.quarantine "$TEMPDIR" 

for APPBUNDLE in "`find "$TEMPDIR" -name "*.app"`"; do 
    codesign --resource-rules="$RESOURCERULES" -f -s "iPhone Developer" "$APPBUNDLE" 
    codesign -dvvvv -r- "$APPBUNDLE" 
done 

cd "$TEMPDIR" 
zip -qr "$TEMPDIR.zip" "Payload" && cd "$CURRENTDIR" && mv "$1" "$1.bak" && mv "$TEMPDIR.zip" "$1" 
cd "$CURRENTDIR" 
rm -rf "$TEMPDIR.zip" 
rm -rf "$TEMPDIR" 
rm -rf "$RESOURCERULES" 
+0

Fajnie, dzięki człowieku! Ale jak korzystać ze skryptu :) Mam ipa z com.something.something i chcę zmienić na com.mycompany.something byłoby to możliwe? – Ompah

+0

Tak. Po prostu zmień go w Info.plist. Podpisałem testową aplikację z identyfikatorem com.apple.iBooks wczoraj tylko po to, aby zobaczyć, co się stanie, i wszystko działało dobrze. –

+0

Zapisz skrypt jako plik tekstowy, przejdź do terminalu, przejdź do katalogu skryptu, chmod + x NameOfFile.sh, a następnie uruchom ./NameOfScript.sh IPAName.ipa –

2

Jest to najbardziej efektywne i wydajne rozwiązanie, jakie do tej pory wymyśliłem.

  1. Upewnij się, że używasz komputera Mac. Ten proces wymaga aplikacji dla systemu Mac OSX.

  2. Pobierz plik .ipa, zmień jego nazwę na plik .zip.

  3. Rozpakuj plik zip, zobaczysz folder o nazwie "Ładunek" zawierający plik .app.

  4. Pobierz Mac OSX app AppResigner tutaj: http://www.gorbster.net/misc/AppResigner.app.zip

  5. Rozpakuj aplikacja. Wewnątrz rozpakowanego folderu zobaczysz aplikację Mac "AppResigner"

  6. Otwórz tę aplikację. Poprosi Cię o wybranie pliku. Wybierz plik .app, który rozpakowaliśmy z pliku .ipa.

  7. Poprosi Cię o podpisanie tożsamości. Otwórz aplikację Mac "Dostęp do pęku kluczy". Kroki, które podejmiesz, mogą się nieznacznie różnić. Otwórz pęku kluczy "zaloguj się" i wybierz kategorię "Certyfikaty"

  8. Tutaj musisz znaleźć certyfikat, z którym chcesz zrezygnować z aplikacji. Może to być na przykład: "Dystrybucja iPhone'a: ​​nazwa Twojej firmy", aby móc korzystać z certyfikatu dystrybucji, musisz mieć dostęp do profilu dystrybucji swojej firmy. Nie próbowałem tego robić z certyfikatem programistycznym, nie wiem, czy to zadziała.

  9. Należy wpisać nazwę tego certyfikatu dokładnie tak, jak jest tutaj pokazane w wierszu polecenia AppResignera; Kopiuj/wklej nie działa poprawnie dla mnie.

  10. AppResigner powinien poinformować Cię, że aplikacja została zrezygnowana.

  11. Znajdź plik .app, który zrezygnowałeś (jest taki sam jak wcześniej) i rozpakuj go. Używam programu Keka na Mac OSX, ale wiele jest dostępnych.

  12. Zmień nazwę pliku zip na plik .ipa.

  13. Gotowe!

+0

Również dla użytkowników lew górskich, dodaj także poniższą linię: eksport CODESIGN_ALLOCATE = "/ Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate" – Meet

Powiązane problemy