Создание айпа с помощью любого скрипта(создание айпа из другого айпа)

в основном мой проект основан на книгах (сочетание pdf и xml). По некоторым причинам мы поддерживаем более десяти профилей обеспечения. Когда появляется новый udid устройства, нам нужно создать еще один профиль обеспечения (согласно требованию). Для каждого времени сборки мне нужно поместить некоторые резервные и заменяющие книги в мой xcode, это требует больше времени. Я видел много сценариев, но все они не полностью заполняют сценарий.

Вопросы:

1. Можно ли разработать другое приложение (mac osx), чтобы сделать ipa, которое принимает входные данные файла подготовки, моего кода (ios) и книг, а затем компилировать, наконец, выдавая результат в виде файла .ipa для предоставления кода?

2. есть ли другой способ сократить время создания ipa?

Если возможно, пожалуйста, дайте мне какую-нибудь идею, чтобы сделать это правдой, ваши предложения также более важны в этом отношении. Заранее всем спасибо.

новый вопрос для создания Ipa из другого файла ipa

Я последовал вашему подходу, но может ли кто-нибудь сообщить мне, что я создал файл ipa, и теперь я хочу изменить содержимое ipa, а также профиль подготовки, возможно ли это?


person ajay    schedule 06.12.2011    source источник
comment
Рассмотрите возможность использования Jenkins (ранее известного как Hudson).   -  person Till    schedule 06.12.2011
comment
Согласен с Тиллем, используйте Testflight или Hockeyapp hockeyapp.net, вы также можете получать отчеты о сбоях в реальном времени.   -  person 0x8badf00d    schedule 07.12.2011


Ответы (1)


Если у вас есть ipa, созданный с использованием более старого профиля обеспечения, и код не изменился между получением следующего профиля обеспечения, то есть способ сделать это.

You can write a script from following steps:

1) Change the .ipa that you already have to .zip and extract zip contents. This would reveal Payload folder that has YourApp.app folder
2) Right click on YourApp.app folder and show package contents
3) find embedded.mobileprovision and delete it. Drag your new .mobileprovision file into this location and rename it to say embedded.mobileprovision.
4) Find and delete any _CodeSignature or CodeResources files/folders
5) From terminal delete .DS_Store files in Payload and YourApp.app folder
6) Use Codesign utility in /usr/bin/codesign to codesign your .app. Here is command for it:

codesign -f -s "iPhone Distribution: Your company Name" PathToYourApp

In your keychain utility find the certificate name that is used to create the distribution profile and match it to first argument in codesign -f -s
7) finally zip the payload to form an ipa

zip -r YourApp.ipa Payload
person 0x8badf00d    schedule 06.12.2011
comment
На самом деле вы не отказываетесь от приложения, если все, что вы сделали, — это добавили устройство в свой профиль подготовки AdHoc. Само приложение не поддерживает список разрешенных устройств. Все, что вам нужно сделать, это установить новую версию профиля на новое устройство, а затем установить само приложение. - person Till; 06.12.2011
comment
Я думал, что профиль обеспечения внутри приложения поддерживает этот список устройств, на которые оно может быть установлено. Когда список обновляется, новый профиль подготовки заменяет старый, поэтому приложение должно быть снова подписано кодом, как я думал. Поправьте меня, если я ошибаюсь. - person 0x8badf00d; 06.12.2011
comment
Спасибо за ваш быстрый ответ, который я пытаюсь реализовать в соответствии с @ 0x8badf00d. Будет ли этот процесс работать даже для разных профилей. - person ajay; 07.12.2011
comment
я попробовал это и смог подготовить ipa с отредактированным профилем, спасибо за это. Мое требование состоит в том, что я должен иметь возможность изменить содержимое папки с книгами, которая представлена ​​​​по абсолютному пути. и я попытался отредактировать папку и создал ipa, но мой ipa не устанавливался и выдавал ошибку, что папка ресурсов изменена. Помогите, пожалуйста, если у вас есть какие-либо идеи - person Dinakar; 07.12.2011
comment
@efrank Похоже, вы изменили содержимое приложения и не кодировали его после изменений. Код-дизайн похож на печать для содержимого приложения. Чтобы изменить содержимое приложения, вам нужно сломать печать, а приложение со сломанной печатью не будет установлено на устройстве с данным сертификатом. Итак, кодируйте приложение после изменения содержимого приложения. - person 0x8badf00d; 07.12.2011
comment
Я также подписал код после взлома и изменения содержимого, но все равно выдавал ту же ошибку. Если вы не возражаете, я хотел бы знать, пытались ли вы когда-либо изменить содержимое. Если нет, пожалуйста, попробуйте один раз, чтобы вы мог понять ошибку лучше, чем я, и мне можно помочь. - person Dinakar; 07.12.2011
comment
@efrank Я изменил файлы plist, и все заработало. Вы уверены, что удалили все файлы .DS_Store и _CodeSignatures, файлы/папки CodeResources, используя терминал, а не Finder. Потому что Finder оставляет файлы .DS_Store в папках. - person 0x8badf00d; 07.12.2011
comment
я удалил файлы DS_Store и _CodeSignatures, файлы/папки CodeResources с помощью терминала, но не изменил файл info.plist. Можете ли вы указать мне, как его изменить. И при использовании codesign -f -s ***** .. ., я дал буквенно-цифровую строку, увидев ее в доступе к цепочке для ключей, и она является общей для любого профиля, правильно ли я делаю. - person Dinakar; 07.12.2011
comment
@ 0x8badf00d: пожалуйста, помогите мне, я очень нуждаюсь, извините, что беспокою вас. - person Dinakar; 07.12.2011
comment
@efrank пришлите мне электронное письмо [email protected] с вашим идентификатором Skype или любым другим программным обеспечением для демонстрации экрана, я могу взглянуть на него. - person 0x8badf00d; 07.12.2011
comment
давайте продолжим это обсуждение в чате - person Dinakar; 07.12.2011
comment
+1 @ 0x8badf00d за вашу большую поддержку. Я тоже следовал вашим шагам и ударил так же, как и eFrank. Не могли бы вы дать дополнительную информацию по моему обновленному вопросу. Еще раз спасибо. - person ajay; 07.12.2011
comment
@ajay, я не думаю, что подписание кода будет работать должным образом, если вы добавите или удалите файлы из пакета приложений. Его исполняемый файл приложения или ResourceRules.plist, который может отслеживать количество файлов в пакете приложения и их размер. Также исполняемый файл приложения знает обо всех ресурсах и отслеживает эти файлы. Я могу быть не прав. Я не знаю, как добавить файлы удаления в пакет приложений и просто написать код. Задайте его как отдельный вопрос. - person 0x8badf00d; 07.12.2011
comment
но я пытаюсь изменить только те ресурсы, которые я разместил в абсолютном пути. Нет никакой зависимости от этого контента. Я не знаю, правильно ли я поступаю или неправильно, но мне это нужно. - person ajay; 07.12.2011
comment
@ajay, когда вы кодируете его с помощью codesign -f -s, вы можете использовать -vvvv, чтобы проверить, что не удалось - person 0x8badf00d; 07.12.2011