Вопрос по ios, iphone, macos, xcode – Невозможно создать архив приложения iOS в xcode

165

У меня проблема с созданием архива приложения для iOS из приложения. Приложение прекрасно компилируется и даже работает в симуляторе. Теперь я хотел провести специальное тестирование и не могу сгенерировать архив приложений для iOS. Когда я нажимаю на Товар - & gt; Архив это генерирует общий архив xcode. Может кто-нибудь мне помочь. Я должен упомянуть, что я уже создал iOS App Archive этого приложения. По какой-то причине он прекратил генерировать iOS Archive. Большое спасибо.

Спасибо @ db42, что сделал это! fabb
Можете ли вы уточнить резолюцию - где вы вносите изменения? jlo-gmail
Если у вас есть какие-либо файлы .xcodeproj в целевых зависимостях Project & gt; Build Phases & gt; удалите их оттуда, а затем соберите свой ipa. Меня устраивает. ура Kalpesh Panchasara
Хотя вопрос заключается в создании архива из xcode, я столкнулся с этой проблемой, используяxcodebuild, Решение состоит в том, чтобы указать пункт назначения:xcodebuild -destination generic/platform=iOS db42

Ваш Ответ

30   ответов
0

Xcode 7 сcocoapods v.0.38.2, Попробуйте удалитьcopy pod resources от вашей сегодняшней цели расширения.

enter image description here

0

Проект был заархивирован, но не будет отображаться в окне органайзера. Я закрыл рабочее пространство и сам открыл проект. Архив был открыт в органайзере ... надеюсь, это поможет.

0

заголовков projet. Вам нужно перейти к настройке параметров библиотеки Target, а затем отредактировать путь к папке публичных заголовков как $ (PROJECT_NAME) заголовки.

0

поскольку все вышеперечисленное не работает для меня ...

ИзменилUser Header Search Paths (Я полагаюHeader Search Paths будет работать так же элегантно), чтобы"$(BUILT_PRODUCTS_DIR)/BlocksKit".

Background:

В BlockKit разработчики структурировали заголовки в основном проекте иначе, чем структура при развертывании. Таким образом, вы не можете ссылаться на заголовки в проекте и должны ссылаться на заголовки, скопированные в каталог сборки.

3

Я обнаружил, что мне нужно удалить ту же фазу сборки Copy Pod Resources из статической библиотеки в моей рабочей области.

Error: User Rate Limit Exceeded
0

как это работало для меня в (Xcode 5), у меня было 2 цели, и когда я редактировал схему, на левой панели редактора схемы вы увидите [BUILD, RUN, TEST, PROFILE XXX.APP, ANALYZE, ARCHIVE ] из панели BUILD вы увидите список целей вашего проекта в списке. В дальнем правом конце вы увидите выбор ARCHIVE, убедитесь, что для архивирования выбрана только одна цель.

В моем проекте были выбраны 2 мои цели, я проверил только ту цель, которую хотел в продукте, и она сработала!

4

как я начал включать код Swift в свой проект преимущественно Objective-C. После большого количества устранения проблем и изучения архивного файла, который выплевывал Xcode, я заметил, чтоSwiftSupport папка (с необходимыми dylibs для среды выполнения Swift) находилась в моем архиве не так, как в новом архиве приложений проекта Swift.

Я нашелInstallation Directory установил настройку и заметил, что в моем проекте задан собственный путь. Я просто удалил его (установив его на общее значение/Applications) и следующая сборка - & gt; Архив Я работал как ожидалось и дал мне надлежащий iOS App Archive.

TL; DR: Убедитесь, что вашInstallation Directory настройка сборки имеет значение по умолчанию/Applications при включении кода Swift в ваше приложение, особенно если вы начинаете с более старого файла проекта, который может иметь некоторые неожиданные старые настройки сборки.

10

возможно, ваша проблема связана сcocoaPods, Последнее обновление0.38.1 все испортил для меня, но потом я опустился до0.37.1 и все вернулось на круги своя. С помощьюXcode 6.3.1

Later edit: обновление до0.38.2 также исправит это. Больше информации о том, что вызвало эту проблему здесь:Cocoapods 0.38.1 не удалось создать действительный архив

Error: User Rate Limit Exceeded/Library/FrameworksError: User Rate Limit Exceededgithub.com/CocoaPods/CocoaPods/issues/3889
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded0.38.2Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededXcode 7 will NOT build a valid Archive from the same project that builds a valid archive in Xcode 6Error: User Rate Limit Exceeded
300

Skip install is NO for the main project target Skip install is YES for framework (sub-projects) targets In Build Phases for sub-projects, Copy Headers needs to be in Project, not Public (does not apply if building static library) Installation Directory under Deployment is valid (/Applications for example)
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded/usr/local/includeError: User Rate Limit ExceededmustError: User Rate Limit Exceededinclude/$(TARGET_NAME)Error: User Rate Limit Exceeded
4

ели приложения Mac в качестве зависимости приложения iOS.

Причина, по которой он был настроен таким образом, заключалась в том, что приложение Mac было инструментом, используемым для генерации некоторых данных для приложения iOS, которое затем было включено в комплект.

Мне пришлось удалить эту зависимость и собрать инструмент отдельно перед созданием самого приложения для iOS.

Error: User Rate Limit Exceeded
2

ни .......

I deleted the value in the Info.plist for Bundle Version потому что я был достаточно доволен только Bundle Version Short 1.0.Bad. Don't do this.

* Обратите внимание, что я на самом деле сделал это, отредактировав его в пользовательском интерфейсе справа, не осознавая, что он поместит пустой ключ в файл Info.plist. Я думаю, что это делает его недействительным. Мой пакет показывался как другие элементы во время архивации и не имел иконки, и я не мог загрузить никуда.

Это сводится к недопустимым значениям в Info.plist. Если он не является действительным архивом, попробуйте разархивировать старый архив и вставить / перезаписать текущий, и посмотрите, исправит ли он это при перестройке архива.

7

я редактировал схему сборки - пробуя все вышеизложенные предложения, которые были применимы, не помогло в моем случае.

У меня было две цели, скажем, «Приложение» и & quot; App FREE & quot ;. Мои проблемы с общим архивом возникли, когда я пытался заархивировать БЕСПЛАТНУЮ версию, которую я добавил после «нормальной» записи. версия приложения. В моем случае, когда я выбрал его схему на панели инструментов и выбрал «Редактировать схему» ... я увидел, что раздел «Сборка» имеет две цели, а именно: приложение и бесплатное приложение.

Я снял флажки для всех столбцов приложения, оставив только проверенные столбцы приложения БЕСПЛАТНЫМИ, и нажал кнопку ОК. В следующий раз я выбрал Product & gt; Архив Я получил мое приложение бесплатно вместо общего архива. :)

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
6

возможно, это решение будет полезным. Эта проблема возникла, когда я дублировал цель. В результате у меня были две цели, построенные параллельно. Это было причиной проблемы. Общий архив IOS был построен.

Чтобы выключить параллель, перейдите к

Manage schemes, Edit scheme, Build, Remove the other target.
1

Clean, Archive delete DerivedData, Archive restart Xcode (I was using XCode7), Archive combinations of above...

Затем я заметил, что в моем загрузочном разделе «мало свободного места»… около 1 ГБ или около того. Я перезагрузился, затем получил около 18 ГБ бесплатно.

Затем открыл Xcode и проект, выполнил Archive ... и, что удивительно (после часа попыток построить архив), я наконец получил не общий архив.

Не знаю, была ли это проблема с свободным диском, которая исправила его, или перезагрузка macOS, которая это исправила, но это сработало для меня.

0

который копировал некоторые временные файлы в:

${TARGET_BUILD_DIR}/myTempDir

Это означало, что после изучения архива с целью проверки его содержимого я обнаружил прямо рядом с файлом .app папку myTempDir. Однажды я изменил сценарий, чтобы сохранить в другом месте вещи были отсортированы.

5

Джоша Х сработало для меня:

In each pod, under Packaging, Private Headers Folder Path and Public Headers Folder Path is set to /usr/local/include. If I clear them then I get a valid archive.

Я также сделал скрипт постустановки для моего Podfile, чтобы сделать это автоматически!

    post_install do |installer_representation|
        installer_representation.pods_project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['PUBLIC_HEADERS_FOLDER_PATH'] = [""];
                config.build_settings['PRIVATE_HEADERS_FOLDER_PATH'] = [""];
            end
        end
    end

Просто добавьте его в конец вашего Podfile и запуститеpod install

0

opening solely the app project в XCode, т.е.not opening a workspace включает в себя приложение и другие проекты / библиотеки / рамки.

Имея 2 отдельных проекта, фреймворк или общую библиотеку и приложение для iOS, мне пришлось открыть 2 разных окна XCode, каждое из которых было открыто.xcodeproj файл вместо общего.xcworkspace, чтобы предварительно построить каждый.

В качестве приятного побочного эффекта XCode больше не перестраивает каждую цель каждого проекта после того, как яClean, что приводит к сокращению времени сборки.

Background: Я создаю SDK с открытым исходным кодом и демонстрационное приложение iOS. Я открыл оба в одном рабочем пространстве. настройкаSkip install вYES для целей SDK любой не сможет создать архив, так как он будет пустым, так что это не вариант. С помощьюProject вместоPublic Заголовки приводят к тому, что в архиве отсутствуют файлы заголовков, которые должны быть распространены, так что это тоже не вариант.

1

ject & gt; Build Phases & gt; удалите их оттуда, а затем соберите свой ipa. Меня устраивает. ура

Вы можете получить ответ здесь:xcode создает общий архив xcode вместо iOS App Archive

0

исимостях». проекты для другой платформы. В моем конкретном случае я работал над проектом, который разделяет код для OSX и iOS. В одной из целей iOS я случайно добавил цель OSX в качестве зависимости.

0

троки OS X в проект моего приложения для iOS, и для параметра «Пропустить установку» было установлено значение «Нет» по умолчанию для цели инструмента командной строки. Поскольку вы, очевидно, не можете установить двоичный файл OS X на устройство iOS, архивация по умолчанию переходит в общий архив XCode. Установка Skip Install на YES для этой цели устранила проблему.

12

а также WatchKit или расширение для Today, существует открытыйвопрос на репо CocoaPods, объясняя, в чем может быть ваша проблема.

solution для меня было удалитьCopy Pod Resources фаза от целей расширения WatchKit и расширения сегодняBuild Phases, Как только я это сделал, проект был скомпилирован и заархивирован, как и ожидалось.

Надеюсь, это поможет кому-то, это поставило меня в тупик на целый день!

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
20

/urs/local/include вProducts пытатьсяэто предложение:

In each pod, under Packaging, Private Headers Folder Path and Public Headers Folder Path is set to /usr/local/include. If I clear them then I get a valid archive.

enter image description here

Работал для меня после обновления моего приложения React Native до0.11.0Xcode7 и CocoaPods0.39.0.beta.4.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
5

Pods и мой основной проект), и вот что сработало для меня:

Выберите проект, там будет 2 типа, естьProject и тамTargets.

For projects that is not your main like GTL or PODS:

Projects:

Skip Install = NO
Installation Directory = /Applications
// For pods
Private Headers Folder Path = ""
Public Headers Folder Path = ""

Targets:

Skip Install = YES
Installation Directory = /Applications
// For pods
Private Headers Folder Path = ""
Public Headers Folder Path = ""

For the main project (which is usually named the same as your product name):

Projects:

Skip Install = NO
Installation Directory = /Applications

Targets:

Skip Install = NO
Installation Directory = /Applications

Check the ios deployment target on each projects and targets to make sure they are all the same.

Error: User Rate Limit Exceeded
0

и BlocksKit в статические библиотеки. Ранее они были построены как подпроекты. Помните, что вы можете использовать липо для создания универсальных библиотек. При создании конечных продуктов код симулятора будет автоматически вырезан.

43

I had a three20 static library, I used cocoapods to include the files within the main project followed the skip install for all other sub projects/static libraries and switched the copy headers from public to project as stated above most importantly: in each library your project uses go to build phases -> Copy Files and ensured that destination is changed from Absolute path to products directory. Note: see the hint below to narrow your search to find the library causing this error.

и это было все!

hint: чтобы получить представление о проблемных файлах, которые приводят к тому, что ваш архив создает архивный файл, а не ipa, сделайте следующее:

Select the archive and click the Distribute button. Select the 'Save Built Products' option. Hit Next and Save. Browse the created directory in Finder. The 'libraries' subdirectory will identify the libraries that you need to set the Skip Install to Yes. in some cases usr/local/include will identify the culprit header files you need to move from Public to Project or the files that you have to change from absolute path to products directory (or even the files you forgot to set the skip install to yes flag). but that directory (ie usr/local/include) varies depending on your sublibrary directory structure. In many cases.. you will see all the files listed under Copy Files in step 3 above listed here. If you find them here, then you have a definite answer for the cause of your problem.

update to hint: чтобы сделать жизнь еще проще .. все файлы появляются на шаге 4 вhint выше .. просто найдите его в глобальном поиске xcode .. и вы должны получить немедленные результаты для того, что вы хотите .. например, это было содержимое моей папки (следуя инструкциям, приведенным выше):

enter image description here

Так что я могу сказать, что это как-то связано сcrypto а такжеssl библиотеки .. ищу их:

enter image description here

заставил меня понять, что я забыл установить пропустить установку на да.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded./usr/local/include.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededso helpfulError: User Rate Limit Exceeded
0

Я столкнулся с той же самой проблемой, пытаясь создать Архив проекта iOS в Xcode 5.1.1 (5B1008). Ни одно из приведенных выше предложений не устранило проблему, и большинство из них не относились к делу (я не добавлял никаких фреймворков и не имел открытых записей в разделе «Копировать заголовки» моих этапов сборки).

В моем случае решение проблемы заключалось в простом закрытии моего проекта, удалении любых ранее созданных мной архивов и переходе в «Настройки» & gt; Учетные записи, удаление моей учетной записи разработчика, выход из Xcode, перезапуск, повторное добавление моей учетной записи разработчика, повторный запуск процесса архивирования. Это решило мою проблему немедленно.

61

Skip Install вYes и в случае, если вы открыли другой проект lib / framwork в своем проекте приложения, вы должны переместить заголовки (если есть) изpublic вproject вBuild Phase / Copy Headers.

build phase of your lib/framwork target

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

yourAppName/Resources/dist.plist to the Code Signing Entitlements

Press cmd + B with iOS Device or a Real Device selected as Build Target

When done -> scroll to "Products" folder and right-click on yourAppName.app

Choose "Show in Finder"

Create a folder with Name Payload (capital "P")

Copy yourAppName into your Payload Folder

Create a zip from your Payload Folder

Rename the zip to yourAppName.ipa

DONE

74

если вы добавили фреймворк / библиотеку ... вам нужно отредактировать настройки цели & gt; Build для этой библиотеки и установить параметр "Пропустить установку". установка на «да». Когда вы переархивируете, XCode должен начать создавать «Архив приложений iOS». опять же, а не «общий архив xcode».

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
2

Пункт 3. Измените «Настройки сборки». - & GT; «путь к общедоступной папке заголовка»; чтобы включить / ххх; тоже работает.

Error: User Rate Limit Exceeded

Похожие вопросы