Чтобы заменить путь в файлах (избегая escape-символов), вы можете использовать следующую команду:
sed -i 's@old_path@new_path@g'
Знак @ означает, что все специальные символы следует игнорировать в следующей строке.
Вы должны попробовать это новое приложение OSX: AirSign .
Это поможет вам отказаться от вашего IPA и поделиться им прямо над эфиром с вашими бета-тестерами. Если вы решите переписать его вручную, особенно если вы измените идентификатор пакета в приложении, вы должны быть осторожны с правами приложения (в некоторых случаях это может быть сложно ...).
С уважением,
Ромен
Это действительно легко сделать из командной строки. Для этого я имел смысл сценария. Он теперь включен в скрипт ipa_sign в https://github.com/RichardBronosky/ota-tools , который я использую ежедневно. Если у вас есть какие-либо вопросы об использовании этих инструментов, не стесняйтесь спрашивать.
В основе этого лежит следующее:
IPA="/path/to/file.ipa"
PROVISION="/path/to/file.mobileprovision"
CERTIFICATE="Name of certificate: To sign with" # must be in keychain
# unzip the ipa
unzip -q "$IPA"
# remove the signature
rm -rf Payload/*.app/_CodeSignature
# replace the provision
cp "$PROVISION" Payload/*.app/embedded.mobileprovision
# sign with the new certificate (--resource-rules has been deprecated OS X Yosemite (10.10), it can safely be removed)
/usr/bin/codesign -f -s "$CERTIFICATE" --resource-rules Payload/*.app/ResourceRules.plist Payload/*.app
# zip it back up
zip -qr resigned.ipa Payload
Ваше новое подписанное приложение называется resigned.ipa
CodeResources
теперь находится внутри внутри i> папки _CodeSignature
, поэтому вам просто нужно удалить эту папку.
– dadude999
7 January 2015 в 23:20
Вид старого вопроса, но с последним XCode, codesign
легко:
$ codesign -s my_certificate example.ipa
$ codesign -vv example.ipa
example.ipa: valid on disk
example.ipa: satisfies its Designated Requirement
codesign
также используется в ответе @BrunoBronosky. Я не могу использовать его непосредственно в & quot; *. Ipa & quot; файл и "-vv" опции всегда возвращают code object is not signed at all
в файлы, которые, как я знаю, они подписаны ...
– Mariano Paniga
4 December 2015 в 11:28
Надеюсь, что это полезно.
Для справки см. ниже упомянутую ссылку: http://www.modelmetrics.com/tomgersic/codesign-re-signing -an-ипа-между-яблочный-счет /
Попробуйте это приложение http://www.ketzler.de/2011/01/resign-an-iphone-app-insert-new-bundle-id-and-send-to-xcode-organizer-for -upload /
Он должен помочь вам отменить файл IPA. Я пробовал это сам, но не смог получить ошибку с Entitlements.plist. Может быть, проблема с моим проектом. Вы должны попробовать.
Проверьте iResign для простого инструмента о том, как это сделать!
[edit] после некоторого fudling around, я нашел решение для изменения размера связывания ключей. Вы можете проверить это на странице https://gist.github.com/Weptun/5406993
sigh Fastlane предоставляет довольно надежное решение для отказа от IPA. Из их README: Resign Если вы сгенерировали файл Вы можете передать дополнительную информацию с помощью командной строки: Он даже обрабатывает профили подготовки для вложенных приложений (например, если у вас есть приложения для часового дела)
ipa
, но хотите применить другую подпись кода в файле ipa, вы можете использовать sigh resign
: fastlane sigh resign
sigh
найдет файл ipa и профиль обеспечения для вас, если они находятся в текущей папке. fastlane sigh resign ./path/app.ipa --signing_identity "iPhone Distribution: Felix Krause" -p "my.mobileprovision"
Я обновил код Брайана для моей Sierra iMac:
# this version was tested OK vith macOs Sierra 10.12.5 (16F73) on oct 0th, 2017
# original ipa file must be store in current working directory
IPA="ipa-filename.ipa"
PROVISION="path-to.mobileprovision"
CERTIFICATE="hexadecimal-certificate-identifier" # must be in keychain
# unzip the ipa
unzip -q "$IPA"
# remove the signature
rm -rf Payload/*.app/_CodeSignature
# replace the provision
cp "$PROVISION" Payload/*.app/embedded.mobileprovision
# generate entitlements for current app
cd Payload/
codesign -d --entitlements - *.app > entitlements.plist
cd ..
mv Payload/entitlements.plist entitlements.plist
# sign with the new certificate and entitlements
/usr/bin/codesign -f -s "$CERTIFICATE" '--entitlements' 'entitlements.plist' Payload/*.app
# zip it back up
zip -qr resigned.ipa Payload
Проверьте эту ссылку ниже, вы можете отменить свое имя приложения, версию, идентификатор пакета, значки приложений.
Ответы, размещенные здесь, все не совсем сработали для меня. В основном они пропускали подписи встроенных фреймворков (или включая права).
Вот что сработало для меня (предполагается, что один файл ipa существует в текущем каталоге):
PROVISION="/path/to/file.mobileprovision"
CERTIFICATE="Name of certificate: To sign with" # must be in the keychain
unzip -q *.ipa
rm -rf Payload/*.app/_CodeSignature/
# Replace embedded provisioning profile
cp "$PROVISION" Payload/*.app/embedded.mobileprovision
# Extract entitlements from app
codesign -d --entitlements :entitlements.plist Payload/*.app/
# Re-sign embedded frameworks
codesign -f -s "$CERTIFICATE" --entitlements entitlements.plist Payload/*.app/Frameworks/*
# Re-sign the app (with entitlements)
codesign -f -s "$CERTIFICATE" --entitlements entitlements.plist Payload/*.app/
zip -qr resigned.ipa Payload
# Cleanup
rm entitlements.plist
rm -r Payload/