Ошибка встроенной двоичной проверки валидации

Со вчерашнего дня Xcode делает глупые вещи, пытаясь запустить приложение WatchKit на моем iPhone. Это дает мне ошибку:

Ошибка встроенной двоичной проверки.

     

Ошибка: предупреждение: есть ли каталог

It's not very helpful and it seems like it's complaining about provisioning profiles for my Watchkit Extension target. I think I set it up correctly by following this answer.

Вот как я создал свои профили. Три идентификатора приложения и шесть профилей (три для разработки и три для распространения).

Main app: enter image description here

WatchKit Extension: enter image description here

WatchKit Watch App: enter image description here

15
@JackDewhurst У меня было это предупреждение и в первом выпуске. Я исправил его, но теперь приложение не архивирует (я тоже могу запустить его на моем iPhone иногда), но это очень неприятно.
добавлено автор BalestraPatrick, источник
Я также получаю эту ошибку, но только при архивировании. Возможно, это связано с тремя предупреждениями перед тем, как предупреждение ( ": пропустить скопированную фазовую полосу, двоичный код подписан" x 3).
добавлено автор Jack Dewhurst, источник
Хорошо, мои предыдущие предупреждения не являются проблемой, исправили их и все еще не удалось выполнить Предупреждение: это каталог .
добавлено автор Jack Dewhurst, источник

9 ответы

I had my custom framework linked and embedded in both the WatchKit Extension and the App. Removing the framework from General > Embedded Binaries of the WatchKit Extension fixed it for me. I did have to delete my Build folder and restart Xcode.

6
добавлено
Проверьте Общие> Встраиваемые двоичные файлы расширения WatchKit. Ваша структура не должна быть там.
добавлено автор respectTheCode, источник
Не могли бы вы рассказать? У меня есть только рамки, связанные на этапах сборки моих расширений.
добавлено автор BalestraPatrick, источник
Ты мой человек. Это сработало! Благодарю.
добавлено автор BalestraPatrick, источник

Я смог решить проблему с помощью правильной настройки профилей Provisioning Profiles.

С помощью Xcode 6.2 я смог выполнить сборку разработки/отладки с автоматическим набором и без дополнительных PP для разработки на портале, но с использованием подготовки команды.
Теперь с Xcode 6.3 мне пришлось добавить 3 явных PPs для разработки на портале и назначить их в настройках проекта.

4
добавлено
Три, по одному для каждого AppId. Или на самом деле шесть, один для разработки для архивирования. См. Мой ответ в связанном SO-вопросе (или здесь: stackoverflow.com/questions/28816339/… )
добавлено автор dogsgod, источник
Вы также обновили свои ПП, как упоминалось? Если это не поможет, извините, но тогда у вас, вероятно, есть еще одна проблема, как и я.
добавлено автор dogsgod, источник
Я создал три разных идентификатора приложения. Нужно ли создавать два или три профиля подготовки?
добавлено автор BalestraPatrick, источник
См. Мой обновленный вопрос. Я последовал за вами, отвечая на этот вопрос, но все тот же вопрос.
добавлено автор BalestraPatrick, источник
Да, удалено и воссоздано несколько раз.
добавлено автор BalestraPatrick, источник

Я тоже борюсь с этой ошибкой. Для меня иногда он строит, иногда это не так. Вот как я в настоящее время могу заархивировать приложение WatchKit. Я не требую каких-либо знаний относительно того, почему это работает, только то, что это работает для меня.

  1. Clean Shift-Command-K
  2. Выйти из Xcode
  3. Удалить файлы в ~ Библиотеке/Разработчике/Xcode/Производные данные
  4. Повторно открыть Xcode и Архив
4
добавлено
В моем случае, просто перезапуск Xcode исправляет проблему. Weird.
добавлено автор Thomas Kekeisen, источник
Это какой-то сумасшедший вуду, но это сработало для меня. Apple Watch наверняка усложнил ситуацию. лол
добавлено автор Mr Rogers, источник
Хорошо, так что это снова случилось со мной, и я думаю, что я понял, почему. Используя git, я переключился на другую ветку, у которой не было поддержки 6.3, поэтому мне пришлось использовать 6.2. Когда я переключился на 6.3, это случилось со мной снова.
добавлено автор Mr Rogers, источник

UPDATE: I've been having this issue on another project and managed to solve it by removing spaces in my WatchKit App and Extension target names. So before my target names were APPNAME WatchKit App and APPNAME WatchKit Extension changing them to APPNAMEWatchKitApp and APPNAMEWatchKitExtension Fixed everything!

ORIGINAL: Just to add my two cents I've been struggling with this issue for a few weeks now. I've narrowed it down to including CocoaPods in the project but without a more descriptive error I've got no idea why.

Я знаю, что мои профили настройки правильны, так как пустой проект (включая целевую точку WatchKit) успешно с ними архивируется. В моем расширении WatchKit нет статических библиотек, поэтому это не проблема.

В итоге единственное, что надежно работает, - это использовать xcodebuild + xcrun в терминале для сборки и архивирования моего проекта. Эта статья объясняет xcode в терминальной колодке.

2
добавлено

Для меня единственным способом исправить это было удаление всех пробелов из имени схемы и просмотр имени приложения.

Чтобы изменить имя схемы: (например, схема «amazingapp RC»)

1) Нажмите на схему в xCode (там, где вы выбираете устройство/симулятор)
2) Из списка выберите: «edit schema»
3) Когда новый модальный открытый нажмите «дублировать схему» в левом нижнем углу.
4) Выберите собственное имя без пробелов и сохраните.
5) Теперь нажмите схемы управления и выберите старый.
6) Удалите его, нажав кнопку «-»

Теперь пришло время для имени расширения:

1) Нажмите на схему в xCode (там, где вы выбираете устройство/симулятор)
2) Выберите схему расширения
3) Нажмите «редактировать схему»
4) Выберите «Архив» (отпустите) в нижней части левого раздела

5) Введите имя пользователя без пробелов в поле «Имя архива»
6) Закрыть.

Now build->clean, build->archive and you should be good to go.

2
добавлено

Я следил за предложениями @ doggod, отозвал все мои сертификаты и т. Д., Более 6 профилей, не повезло. После этого в течение почти 6 часов другой член команды проверил это, и он работал (позволяя xcode исправлять проблемы для них). Убедитесь, что группы включены для всех идентификаторов приложения (я использую группы для обмена данными между часами и основным приложением)

Итак, я думал, что это всего лишь мой xcode.

Затем я пошел в git, клонировал его, а потом скомпилировал.

Возможно, все в моем gitignore избавилось от всех файлов, которые меня блокировали. Или, возможно, потому, что я вытащил его после того, как они его совершили. На данный момент это почти просто вуду, но это сработало

1
добавлено

В моем случае это были мои настройки Xcode.

I had my DerivedData -> Advanced Settings (Build Location) set to "Custom" = "Relative to Workspace".

Я изменил его на Unique, и это заставило его работать.

Надеюсь, это поможет кому-то.

0
добавлено

EDIT: A day later I can share one more thought. While the git cloning works, the problem resurfaces after I make some changes. Which makes me wonder if the problem comes from a bad file formatting (like non unix-like EOF or similar) or just a bug in Xcode. Anyways, my workflow currently is as follows:

1) git clone to another directory
2) archive
3) if there is an error, I need to fix it, 
4) git commit & git push
5) repeat steps 1 & 2 ... 

Что надоедает, но это единственный способ, которым я могу заархивировать свой проект и загрузить его в App Store ...

ORIGNAL POST: I have encountered this error as well. My project uses CocoaPods, multiple targets and build schemes as well as group entitlements. At times I can't build, although this is fixable (see below) but the problem with archiving persited for a longer time. After two days of fighting with it, my summary is as follows:

Я следил за всеми ответами, и я вижу, что иногда делаю:

1) чистый проект

2) (необязательно - не требуется alwys) перезапустить Xcode

3) удалить содержимое папки с данными

позволяет мне скомпилировать и запустить приложение. Но я все еще не могу архивировать. Иногда кажется, что я должен сделать это дважды.

Помимо вышеизложенного, я попытался (и не смог архивировать) следующие предложения:

  • переименуйте имена целей (и содержащие папки), чтобы НЕ включать пробелы, цели Extension и WatchApp не имеют пробелов в своих именах, но проект не будет архивироваться (без изменений)
  • Я проверил, что встроенных двоичных файлов в Extension Target нет (watchApp не имеет этой опции)
  • Я попытался изменить цель развертывания (по умолчанию был iOS 8.3 для Xcode 6.4) и для 8.2, и для 8.4 без везения в архивировании.
  • Я обновил AppID и все профили подготовки как для «adHoc», так и для «схем выпуска», также не повезло.
  • и я проверил, что в текущей схеме, которую я пытаюсь архивировать, нет пробелов, но она все равно ничего не меняет.
  • Я даже попробовал последнее предложение, то есть изменил местоположение папки Derived Data по умолчанию, но, как я подозревал, он ничего не изменил.

Интересно, что на самом деле HAVE WORKED - это предложение Майка Манха: проверка репо на другую папку .

После клонирования репо в новую пустую папку все неожиданно начало работать. Это приводит меня к выводу, что в моей текущей папке проекта могут быть некоторые оставшиеся файлы/неработающие ссылки/что-то еще. Я предполагаю, что это могло произойти, когда я пытался переустановить ветку разработки watchKit в текущую главную ветвь. Который начал замалчивать меня сумасшедшими конфликтами, и я, наконец, прервал перестановку. Возможно, это был момент, когда опция архива перестала нормально функционировать.

0
добавлено

I had the same problem. In Xcode 6.* I fixed it by cleaning my DerivedData folder. But in new Xcode 7 it didn't help. So I removed spaces in WatchKit Extension and WatchKit App ("planckMailiOS WatchKit App" -> "planckMailiOSWatchKitApp" and "planckMailiOS WatchKit Extension" -> "planckMailiOSWatchKitExtension").

0
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.