我有一些应用程序,我想用不同的苹果开发者许可证辞职,
问题是,我没有源代码,只有ipa文件,应用程序和archiveinfo.plist 如果我没有源代码,我可以辞退应用程序吗?
谢谢! Ompah
答案 0 :(得分:23)
替换已签名二进制文件上的签名的功能内置于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"
答案 1 :(得分:2)
这是迄今为止我提出的最有效和最有效的解决方案。
确保您使用的是Mac。此过程需要Mac OSX的应用程序。
获取.ipa文件,将其重命名为.zip文件。
解压缩zip文件,您将看到一个名为“Payload”的文件夹,其中包含.app文件。
在此处下载Mac OSX应用AppResigner:http://www.gorbster.net/misc/AppResigner.app.zip
解压缩应用。在解压缩的文件夹中,您将看到Mac App“AppResigner”
打开此应用。它会要求您选择一个文件。选择我们从.ipa文件解压缩的.app。
它会要求您签名。打开Mac App“Keychain Access”。您在此处采取的步骤可能略有不同。打开钥匙串“登录”并选择“证书”类别
在这里,您需要找到要退出应用程序的证书。例如,它可能是:“iPhone Distribution:您的公司名称”,您需要访问公司的分发配置文件才能使用分发证书。我没有尝试使用开发证书,我不知道这是否有效。
输入此证书名称,与此处显示的AppResigner提示完全相同;复制/粘贴对我来说无法正常工作。
AppResigner应该告诉您该应用已被撤销。
找到你辞职的.app文件(它和以前一样)并压缩它。我使用Mac OSX程序Keka,但很多都可用。
将zip文件重命名为.ipa文件。
完成!