10

別のアップル開発者ライセンスで辞任したいアプリがいくつかあります。

問題は、ソース コードがないことです。ipa ファイル、アプリ、archiveinfo.plist しかありません。ソース コードがない場合、アプリを辞任できますか?

ありがとう!オンパー

4

2 に答える 2

22

署名済みのバイナリの署名を置き換える機能は、codesign ユーティリティに組み込まれています。そうすれば、開発者証明書の有効期限が切れた場合 (煩わしいことがよくあります)、アプリを再構築する必要はありません。

これは特に、古いバージョンのアプリをサポートする必要があり、IPA をアーカイブしてからコードを変更した場合に重要です。

私は通常、このスクリプトを使用します。独自の開発者アカウントを持っていて、UDID スロットを焼き付けたくない人や、自分のプロビジョニング プロファイルをデバイスにロードする必要がない人とデバッグ ビルド IPA を交換する場合に便利です。

#!/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"
于 2011-07-13T00:43:33.060 に答える
2

これは、これまでに思いついた中で最も効果的かつ効率的なソリューションです。

  1. Mac を使用していることを確認します。このプロセスには、Mac OSX 用のアプリケーションが必要です。

  2. .ipa ファイルを取得し、名前を .zip ファイルに変更します。

  3. zip ファイルを解凍すると、.app ファイルを含む「Payload」というフォルダーが表示されます。

  4. ここから Mac OSX アプリ AppResigner をダウンロードします: http://www.gorbster.net/misc/AppResigner.app.zip

  5. アプリを解凍します。解凍したフォルダー内に、Mac アプリ「AppResigner」が表示されます。</p>

  6. このアプリを開きます。ファイルを選択するように求められます。.ipa ファイルから解凍した .app を選択します。

  7. 署名 ID を求められます。Mac アプリ「キーチェーン アクセス」を開きます。ここで行う手順は、多少異なる場合があります。キーチェーン「ログイン」を開き、カテゴリ「証明書」を選択します</p>

  8. ここで、アプリを再署名する証明書を見つける必要があります。たとえば、「iPhone ディストリビューション: 会社名」のようになります。ディストリビューション証明書を使用するには、会社のディストリビューション プロファイルにアクセスする必要があります。開発証明書でこれを試したことはありません。それが機能するかどうかはわかりません。

  9. ここに示されているとおりに、この証明書名を AppResigner プロンプトに正確に入力します。コピー/貼り付けが正しく機能しませんでした。

  10. AppResigner は、アプリが辞任されたことを通知するはずです。

  11. 辞退した .app ファイル (以前と同じファイル) を見つけて、圧縮します。私は Mac OSX プログラムの Keka を使用していますが、多くのプログラムが利用可能です。

  12. zip ファイルの名前を .ipa ファイルに変更します。

  13. 終わり!

于 2013-03-20T21:24:50.220 に答える