2011-07-04 68 views
9

我有一些應用程序我想用不同的蘋果開發人員許可證辭職,辭職外的Xcode應用

問題是,我沒有源代碼,只有IPA文件,應用程序和archiveinfo.plist 是如果我沒有源代碼,我可能會辭職嗎?

謝謝! Ompah

+0

您可以試試[www.aironapp.com](http://www.aironapp.com)。它可以自動對IPA進行重新設定。您需要先配置您的Apple帳戶(上傳證書和私鑰)。 – shader

+0

簡單的shell腳本回答:http://stackoverflow.com/a/10905855/190599 – CodeReaper

回答

23

代碼工具中內置了替換已簽名二進制文件上的簽名的功能。這樣,如果您的開發人員證書過期(因爲他們經常煩人),您不必重新編譯您的應用程序。

這可能很重要,特別是如果您需要支持舊的應用程序版本,並且自從您歸檔IPA以來已經對代碼進行了更改。

我通常使用這個腳本。當與具有自己的開發人員帳戶的人員交換調試版本IPA並且我不想爲其燒錄UDID插槽並且不希望在設備上加載自動配置配置文件時,它非常方便。

#!/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

很酷,謝謝你! 但我該如何使用腳本:) 我有一個與com.something.something的ipa,我想改爲com.mycompany.something 會是可能的嗎? – Ompah

+0

是的。只需在Info.plist中更改它即可。我昨天用ID com.apple.iBooks簽了一個測試應用程序,看看會發生什麼,並且它工作正常。 –

+0

將腳本保存爲文本文件,進入終端,cd進入腳本的目錄,chmod + x NameOfFile.sh,然後運行./NameOfScript.sh IPAName.ipa –

2

這是迄今爲止我提出的最有效最有效的解決方案。

  1. 確保您使用的是Mac。這個過程需要一個適用於Mac OSX的應用程序。

  2. 取出.ipa文件,將其重命名爲.zip文件。

  3. 提取壓縮文件,您將看到一個名爲「Payload」的文件夾,其中包含一個.app文件。

  4. 下載Mac OSX應用AppResigner這裏:http://www.gorbster.net/misc/AppResigner.app.zip

  5. 解壓縮的應用程序。在解壓縮的文件夾內,您將看到Mac App「AppResigner」

  6. 打開此應用程序。它會要求你選擇一個文件。選擇我們從.ipa文件中解壓縮的.app文件。

  7. 它會要求您提供簽名身份。打開Mac App「鑰匙串訪問」。您在這裏採取的步驟可能略有不同。打開鑰匙扣「登錄」並選擇類別「證書」

  8. 在這裏你需要找到你想要退出應用程序的證書。例如,它可能是:「iPhone分發:您的公司名稱」,您需要訪問貴公司的分發配置文件才能使用分發證書。我還沒有嘗試用開發證書來做這件事,我不知道這是否可行。

  9. 輸入此證書的名稱與此處顯示的AppResigner提示完全相同;複製/粘貼對我來說工作不正常。

  10. AppResigner應該告訴你應用程序已被辭職。

  11. 找到您已辭職的.app文件(與之前的文件相同)並將其壓縮。我使用Mac OSX程序Keka,但很多都可用。

  12. 將壓縮文件重命名爲.ipa文件。

  13. 完成!

+0

同樣對於山獅用戶,也可以在下面加入: export CODESIGN_ALLOCATE =「/ Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate」 – Meet