Xcode 10: Дійсний профіль забезпечення цього виконуваного файлу не знайдено


222

З вчорашнього дня я отримую таку помилку при спробі запуску програми на своєму пристрої: "Дійсний профіль надання цього виконавчого файла не знайдено." Це після оновлення до Xcode 10. Побудова з Xcode 9 минулого тижня працювала без проблем.

Я перевірив інші дискусії щодо помилки, але жодне з рішень не працює.

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

Поки я спробував таке:

  • Проект очищення

  • Очищення отриманих даних

  • Видалення Xcode, видалення будь-яких налаштувань та файлів, пов’язаних із цим.

  • Встановлення Xcode на зовсім інший Mac

  • Тестування з різними пристроями

  • Вимкнення пристрою в профілі розробника та дозволити його знову ввімкнути Xcode.

  • Видалення всіх сертифікатів на порталі розробників та їх відтворення

  • Зняти прапорець і повторно встановити прапорець "Автоматично керувати підписом"

  • Знищити профіль надання та дати Xcode відтворити його

  • Створення профілю подання вручну в профілі розробника

Проект не містить тестів, тому не може виникнути проблема з неправильними налаштуваннями підпису на цій цілі. Дата / час встановлено на Автоматичне

Слід зазначити, що тут не вказано жодних профілів надання послуг, за винятком створеного мною посібника: https://developer.apple.com/account/ios/profile/

Я б очікував, що створений xcode відобразиться так само, як і для всіх інших клієнтів.

Нижче наведено налаштування підписання, якими я зараз користуюся

надання налаштувань профілю

Мені ще потрібно спробувати відновити Xcode до старішої версії, щоб побачити, чи працює це. Крім цього, я не маю уявлення, що спробувати далі.


Ви додали обліковий запис розробника в налаштуваннях Xcode?
Анкіт Джаясваль

@AnkitJayaswal Неодноразово ніколи не працював. Однак мені вдалося вирішити це питання, зменшивши рівень до 9.4.1, тому проблема, здається, якось пов'язана з Xcode 10. Ви маєте можливість деякий час надсилати програми зі старою версією Xcode?
Даніель Андерссон

2
Так, ви можете надсилати збірки з xcode 9 та її версії до березня 2019 developer.apple.com/ios/submit
Ankit Jayaswal

Також я спробував і з Xcode 10, і я не стикаюся з такими проблемами missing provisioning-profile.
Ankit Jayaswal

3
Ви змінили дату iPhone після закінчення терміну дії сертифікату? Я зіткнувся з цим питанням через цю причину.
Anuved Nayak

Відповіді:


478

Я сьогодні боровся з цим, це було дуже страшно. Наразі просто перейдіть до "File"> "Project Settings..."(або в деяких випадках "Workspace Settings..."), а потім виберіть "Legacy Build System"зі "Build System"спадного меню.


1
Це працювало і для мене, тому я можу створювати додатки з Xcode 10 без необхідності повертатися до Xcode 9. Я подав збірку в App Store Conenct і зміг опублікувати її в TestFlight. Отож, є кілька шляхів вирішення, поки проблема не буде виправлена ​​належним чином. Будь-які нотатки від Apple, в яких говориться, як довго вам дозволять використовувати застарілу систему збирання під час подання програм?
Даніель Андерссон

9
Але що це означає? Який ефект це має і як ми знаємо, що ми можемо змінити налаштування знову?
Сія

4
Це працювало над будівлею Кордови - відмінна робота. Очевидно, що у Cordova CLI є аргумент пропустити: cordova build ios --buildFlag = '- UseModernBuildSystem = 0' Детальніше тут: github.com/apache/cordova-ios/isissue/407
Victor

6
У розділі Файл немає налаштувань проекту. Мені довелося натиснути "Налаштування робочої області", а потім виберіть "Спадкова система побудови" зі спадного меню "Створити систему" у налаштуваннях спільної та користувацької робочої області.
червоний диявол

9
Не працює для мене: ((. Моя версія Xcode - 10.1. Моя версія ОС iPhone - 12.1.
Хамед Ґадіріан

94

@Stephen tks це вирішено для мене. Мені просто потрібно перейти -> Файл -> Настройки WorspaceSettings -> Налаштування збірки (змінити тут на "Спадкова система збирання")введіть тут опис зображення

введіть тут опис зображення


1
Розчаровує, це все, що працювало і на мене. Я зареєстрував свій UDID, створив свій профіль, у мене є розробник, це все пов'язано з додатком, який я розробляю, зробив усе, що вам потрібно зробити, щоб мати можливість безпосередньо працювати на пристрої, все одно виходить з ладу - поки я не переключив його на спадщина, працював перший раз ...
Грант

62

[ред.] Примітка 2020: я вручну підписував цей проект. У проектах, де я автоматично підписувався, у мене цього питання ніколи не було. [/ редагувати]

У мене була така ж проблема, і я витратив години на пошуки відповіді, видалення профілів, проект очищення тощо.

Ви поширили свій додаток? Потрібно повернутися до профілю розробника, але не в загальних під параметрами проекту, а в налаштуваннях збірки .

У розділі Підписання подивіться свою особу, що підписує код .

Переконайтесь, що і для налагодження, і для випуску встановлено ваш розробник iOS , а не дистрибутив iOS ; або ваш профіль надання iOS для розробників iOS, якщо він не встановлений на автоматичні значення.

Те саме стосується надання профілю. Це має бути ваш профіль, що розвивається, а не ваш профіль розповсюдження. введіть тут опис зображення

Сподіваємось, це допоможе майбутнім розробникам, які потребують.


Для уточнення (оскільки мене збентежила ця рекомендація, коли я вперше прочитав її): ця зміна випуску для iOS Developer відбувається лише під час тестування безпосередньо на підключеному пристрої; потрібно буде повернутися до iOS Distribution при складанні для завантаження в тестовий політ / магазин додатків, правда?
ToolmakerSteve

1
Якщо чесно: ні. Мені не довелося цього робити. Однією з можливих причин цього могло бути те, що мені довелося знову встановити сертифікати і, можливо, "встановити" дистрибутив перед розробкою. Я просто здогадуюсь, але щоб відповісти на ваше запитання: я все-таки налаштовував їх як "Розвиток" і вибрав "Розподіл", коли архівував збірку для завантаження в App Store.
Рікард Елімяа

2
Це мені справді допомогло! <3
bobber205

Це зафіксувало це для мене. Я лише отримував проблему, коли намагався профілювати додаток, він працював нормально, я просто працював нормально. У мене був обліковий запис розробника для налагодження та дистрибутив для випуску. Мені це чесно здається помилкою XCode / Profiling.
Джеймс

1
Зрозуміло, але потрібен ще один крок. Оскільки я займався тестуванням на прив’язаному iPhone, я не хвилювався про те, щоб зайти в App Store і налаштувати свій сертифікат "iOS Distribution". Оскільки я займався розробкою, я припускав, що потрібна буде лише установка сертифіката "iOS Development" в App Store. Ну, це не спрацювало, поки у мене не було і «iOS Development», і сертифікат «iOS Distribution».
Стагр.Лій

41

Я перепробував всі вищезазначені рішення.

Однак у моєму випадку через години головного болю це було через тестовий проект, який не має дійсного рахунку для забезпечення підписання. Після того як я вибрав команду для участі в тестовому проекті з автоматичним керованим підписанням. Ця проблема пішла.


Як ти це зробив?
червоний чорт

2
@ red-devil Отже, вам доведеться оновити управління підписанням у всіх своїх цільових проектах.
Чень

Спасибі людино, усі вищевказані відповіді не вирішили моєї проблеми. Ваша відповідь зробила магію.
HungrySoul

26

Використовуйте чисту папку збірки (команда + shift + K), і перезавантажити додаток може незабаром вирішити цю проблему. Однак час збирання збільшиться, оскільки ви очистили папку збірки.


1
Це працювало для мене (плюс видалення отриманих даних), тоді як пропозиції використовувати застарілий режим не працювали.
Кріс

1
Виявилося, у мене була інша команда для моєї нормальної та моєї тестової цілі, що спричиняло проблеми, через які можна було скинути лише видалення отриманих даних.
Кріс

1
Одиноке очищення папки збірки (команда + shift + K) вирішило проблему для мене. Дякую @JeromeLi!
Чилі

1
Я спробував спершу прийняту відповідь ("Спадковий режим"), і це спрацювало на мене. Потім я повернувся до "New Build System" і спробував цю пропозицію ("Очистити папку збірки"). Це теж працювало. Тож, на баланс, для мене це краща відповідь.
користувач1527225

1
Це спрацювало для мене, дякую. (Ps: у мене виникла тільки проблема в iPhone 11, у мого iPhone Xs Max немає цієї проблеми, а iPhone 11 вперше встановив тестовий проект)
RateRebriduo

14

Отже, це не буде для всіх, але я подумав, що все-таки опублікую це, оскільки, схоже, немає відповідей на це.

У моєму випадку я працював над додатком, який розроблявся в ReactNative, моя проблема полягала в тому, що, хоча підписання було правильним у головній цілі програми, тестова ціль не застосовувала жодного підписання до нього.
Чомусь React Native вимагає, щоб і ваша ціль програми, і ваша тестова ціль були підписані для того, щоб встановити додаток на пристрої.
Це вказується в офіційній документації на створення пристрою, проте це єдиний екземпляр, який я коли-небудь бачив, де тестова мета побудована поряд із додатком для чогось іншого, крім тестування.

Щоб підписати тестову ціль, перейдіть до налаштувань проекту, відкривши навігатор проекту (⌘1) та виберіть проект у верхній частині.

Всередині головного редактора виберіть основну ціль програми у розділі Цілі (має бути те саме ім’я, що і ваш проект) та переконайтесь, що підпис правильний, а потім виберіть тестову ціль (можливо, саме під вашою основною ціллю програми, вона повинна бути такою ж назвою з Тестами додається) і переконайтесь, що його підписано так само.

Відновіть додаток, і тепер воно має бути успішно встановлено.

Завдяки цьому Лео Лей, його відповідь тут врятував мені багато головного болю: https://stackoverflow.com/a/48657358/732844

Як інакше, якщо хтось знає, чому реагувати на місцях потрібно, щоб ваша тестова ціль була побудована разом із цільою програми, чи могли вони мені повідомити? Єдина причина, про яку я можу подумати - це впорядкувати інтерфейс, щоб реагувати, можна створити єдиний додаток і зробити як запуск, так і тестування, не потребуючи перебудови, але я просто здогадуюсь з цим.


2
Це зафіксувало мене там, де нічого іншого не робилося. Дякую за публікацію
Крістіан Чоун

2
Велике спасибі, що це вказувало. Я перейменував проект і змінив команди. Тестова ціль мала стару назву команди. Я боюсь годинами. Велике спасибі ще раз
Алікс,

Після годинного болю в голові це полагодило це для мене. Дуже дякую!
Джонсон

8

У моєму випадку ось такі кроки, що дозволяють вирішити проблеми:

  1. Перейдіть до цієї папки: ~/Library/MobileDevice/Provisioning Profiles/
  2. Видаліть весь профіль резервування
  3. У меню Xcode 10> Продукт> Очистити папку збірки
  4. У меню Xcode 10> Xcode> Налаштування> Обліковий запис> Завантажити ручні профілі
  5. У меню Xcode 10> Product> Build / Archive

Причиною вжити вищезазначених кроків є видалення старих профілів забезпечення, які зіпсували процес створення.


6

Для нашої команди нічого не допомогло. Ми витратили пару днів і випробували кожен крок, про який було сказано вище, у відповідях та коментарях. Ми намагалися з XCode 10 і навіть XCode 9.2 в додатку, тобто в магазині додатків вже багато років.

Випуск розпочався після оновлення до MacOS Mojave. На жаль, повернення до HighSierra тоді не допомогло.

Принаймні, ми знову змогли відправити в магазин додатків після того, як створили новий сертифікат та профіль надання. Але ми все ще не в змозі перевірити наш додаток у режимі випуску на реальному пристрої, що необхідно для тестування InApp-покупок.

Коротше кажучи: архівування та надсилання працює добре, не працює на реальному пристрої!

Кілька розробників, кілька пристроїв, MacBook, версії XCode ....

Наприкінці нам довелося змінити AppID щоб знову можна було протестувати на реальних пристроях.

Для цього ми зараз запускаємо два різні проекти: один для доставки до TestFlight / AppStore з реальним AppID і один для цілей розробки з іншим AppID.

Хоча це відбувається лише в одному конкретному додатку нашої компанії, а не у всіх інших, ми очікуємо, що в майбутньому виникнуть подібні проблеми, оскільки з інструментами розвитку Apple все погіршиться ...


5

Ця проблема виникала в Xcode 10.3 після того, як я перейшов до своєї тестової цілі одиниці XCTest, а потім повернувся до цільового часу виконання проекту.

Виявляється, у моєму профілі забезпечення для кожної цілі було вибрано різні команди.

Щоб виправити це:

  • Очистити папку збірки

  • Переконайтесь, що всі цілі можуть використовувати одну команду. Див. Розділ Підписання профілю на загальній вкладці.

  • Якщо ви не використовуєте одну команду для всіх цілей, очистіть її перед тим, як перейти до цілі збірки

    вибрана інша команда.


5

Переконайтесь, що профіль резервування надходить від однієї команди як у вашій цільовій, так і у вашій targetTests.


1
Дякую! Це питання виникло у мене під час роботи з React Native
Янникв

4

У моєму випадку дату часу на пристрої було встановлено на майбутню дату. Зміна налаштування дати на "автоматичне" виправило проблему.


3

Я боровся з тією ж проблемою, і в моєму випадку рішення було ввійти до облікових записів розробників. Після оновлення до Xcode 10 усі акаунти вийшли з системи.

Використовуйте меню "Xcode -> Preferences ... -> Accounts" та переконайтесь, що всі облікові записи, які ви використовуєте, увійшли в систему, щоб доступні профілі резервування.


2

Я дотримувався всіх вищезазначених кроків, але остаточно це не вийшло. Мені було створено дублікат Target, і він працює чудово. Я поняття не маю, що не так, можливо, проблема кеш-пам'яті

введіть тут опис зображення


1

Ви, можливо, змінили свій розроблювальний пристрій? Це сталося зі мною, коли я купив новий iPhone і дав йому те саме ім’я, як і попередній пристрій. Однак чиста конструкція вирішила цю проблему.


1

Минуло багато часу, і ми зробили всі вищезазначені рішення, і вони взагалі не спрацювали, тому наша команда вирішила видалити Podфайли та запустити pod installзнову. нарешті, наша OTA завантажила ipa, встановлений на пристрої користувача. найкраще рішення

  1. чистий project menu > Product > Clean Build Folder і/Users/{you user name}/Library/Developer/Xcode/DerivedData

  2. перейдіть до каталогу проектів і видаліть Podfile.lock, Podsпапку,pod_***.framework

  3. pod installзнову біжи

Зроблено


1

У мене був випадок, коли моє додаток буде розгортатися на iPhone, але не на годиннику. Якщо розміщення на годиннику призведе до того, що "дійсний профіль забезпечення цього виконуваного файлу не знайдено". помилка. Це відбувається з XCode версії 11.2.1 та з використанням безкоштовного облікового запису розробника.

Ось що я зробив, щоб розгорнути його на годинник:

1) Я видалив свій профіль забезпечення в XCode. Я зробив це, перейшовши у вікно -> Пристрої та симулятори. Потім клацніть правою кнопкою миші на ім'я iPhone та виберіть "Показати профілі надання". Звідти я міг видалити файл

2) На екрані "Пристрої та симулятори" я також видалив додаток із розділу "Встановлені програми".

3) Зробив "чисту папку збірки" (Product -> Clean Build Folder)

4) У розділі "Налаштування збірки" -> "Розділ підписання" я переконався, що для кожної цілі (iPhone, тести та годинник) були однакові налаштування (команда розробки, стиль підписання коду, профіль надання встановлено на автоматичне тощо).

побудувати деталі налаштувань

5) Переконайтесь, що каталог ~ / Library / MobileDevice / Provisioning Profiles був порожнім.

6) Відключений телефон від комп'ютера

7) Перезавантажений комп'ютер, телефон та годинник

8) Підключив телефон назад до комп’ютера і пройшов підказки "довіри цій машині" на телефон і дивіться.

9) Програму Ran. Це спрацювало!


У мене була така сама проблема з моїм яблучним годинником, і це мені допомогло. Я також зробив скасування і знову пару годинника яблук десь у процесі. Дякую!
Раду Влад

1

Сьогодні у мене була та сама помилка під час встановлення програми на мій пристрій. Проблема виникла після оновлення до нового xCode 11.4.

Що я зробив, щоб виправити проблему:

  • Непарний пристрій (Xcode> Window> Пристрої та симулятори> Клацніть лівою кнопкою миші пристрій, щоб відключити пристрій.
  • Перезавантажте iPhone
  • Очистити папку збірки (Xcode> Product> Clean Build Folder)
  • Очистити отримані дані (у ../library/Developer/Xcode/DerivedData)
  • Знову очистити папку збірки (Xcode> Product> Clean Build Folder)
  • Створіть додаток на пристрої.

У моєму випадку я вирішив проблему, використовуючи ці кроки, не скасовуючи пристрій.
Мухаммед Юсуф

0

У моєму випадку, коли нічого іншого не допомогло, я зробив наступне:

  1. змінити AppID на новий
  2. XCode автоматично генерував нові профілі забезпечення
  3. запустіть додаток на реальному пристрої -> тепер воно запрацювало
  4. повернути AppID на початковий ідентифікатор
  5. працює

До цього я випробував кожен крок, про який згадувалося тут. Але тільки це допомогло.


0

Для мене навіть ви отримали сертифікат розповсюдження та профіль надання для Xcode, вибравши функцію автоматичного керування підписом під час процесу розповсюдження. Я зробив наступне. Як було сказано раніше, я створив новий сертифікат розповсюдження та профіль забезпечення, а потім під час процесу дистрибуції вручну вибрав профіль сертифікатів та резервування та Voilaaaa. Також переконайтесь, що я перебуваю на останній версії 10.1.


0

Схоже, Apple виправила цю помилку в Xcode 10.2 beta 2 Release.

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_beta_2_release_notes

Підписання та розповсюдження вирішених питань

Коли ви створюєте архів програми macOS та використовуєте сертифікат підпису ідентифікатора розробника, Xcode включає захищену позначку часу в підписі архіву. Як результат, тепер ви можете подати заархівовану програму до нотаріальної служби Apple за допомогою xcrun altool, попередньо не потрібно повторно підписувати її часовою позначкою. (44952627)

Коли ви створюєте архів програми macOS, Xcode більше не вводить права підпису com.apple.security.get-task-enable у підпис програми. Як результат, тепер ви можете подати заархівовану програму до нотаріальної служби Apple, використовуючи xcrun altool, попередньо не потрібно позбавляти цього права. (44952574)

Виправлена ​​проблема, яка спричинила розподільний робочий процес повідомляти про неточну або відсутню інформацію про сертифікат підписання, профіль надання та права, які використовуються під час експорту або завантаження програми. (45761196)

Виправлена ​​проблема, коли виправлені файли .ipa не підписувалися під час експорту з Організатора. (45761101)

Xcode 10.2 beta 2 Release можна завантажити тут: https://developer.apple.com/download/


3
це чудово. але якщо ви будете створювати програми для додатка, це не дозволить вам завантажувати ipa, якщо ви використовуєте бета-програмне забезпечення
Yasha

0

Вам просто потрібно змінити свою команду. У моєму випадку це спрацювало


0

Після того, як я втомився більшість рішення, я виявив , що його змусити його працювати без будь - якого питання для мене, її вирішити, йти на developer.apple.comте accountтоді Certificates, identifiers & profilesі я натискаю на Allпосилання підDevices , а потім додати новий пристрій.

то вам потрібно встановити ім’я пристрою та uuid та зберегти його. Перейдіть на xcode та очистіть кеш, складіть і всі його роботи добре.

Примітка 1: переконайтеся, що ваша команда встановлена ​​правдою.

Примітка 2: Ви можете отримати uuid, підключивши пристрій до свого Mac пристрою, натисніть на iTunes і натисніть на мітку безпеки, ви побачите UUID.

Яка ця відповідь також корисна.


0

Я спробував усі відповіді вище, і мені не пощастило. Після цього я перезавантажую iPhone і проблема, здається, пішла. Я знаю, що це так дурно, але це спрацювало. Відповіді вище, швидше за все, вирішують проблему, але якщо не спробувати перезавантажити пристрій iOS.


0

Переконайтесь, що ви:

1) Майте зареєстрований профіль забезпечення вашого пристрою.

2) Пристрій потрібно додати до профілю розробки та оновити.

Якщо у вас все-таки виникають проблеми, перевірте налаштування збирання цілі.

Переконайтесь, що ви:

1) CODE_SIGNING_REQUIREDу User-Definedвстановлено YES.

введіть тут опис зображення

2) Перевірте Signingпараметри правильними. Якщо проблема не зникає, переключіться на "Налаштування вручну", а не автоматично.


0

Зустрічаються ж проблема, у нас було кілька конфігурацій в проекті Xcode, скажімо , давайте Debug-Staging, Debug-Production. Потім ми об'єднали їх і використали лише одну конфігурацію Debug. Але стара (вже не існує) застрягла в схемі для фази запуску, тому, як тільки ви спробували запустити, Xcode показав вам це повідомлення. Що має сенс, оскільки профілі забезпечення встановлюються в налаштуваннях збірки на основі конфігурації.

Отже схема запуску виглядала приблизно так:

Неправильна цільова схема

У той час як конфігурації проекту були налаштовані так.

Конфігурації проекту

Зміна схеми використання конфігурації, яка все ще доступна в проекті - це те, що вирішило цю проблему для мене.


0

У мене був той самий випуск (XCode 11), і нічого не працювало те, що було написано тут.

Моя проблема полягала в тому, що у мене на телефоні була iOS Beta (13.3). Після повернення, що все знову працювало нормально.


Ідея: Можливо, пристрій також кешує якусь інформацію про профіль надання, тому заводський скидання телефону також може це виправити?



0

Я зробив наступне:

  1. Відключено пристрій, на якому додаток не встановлюється
  2. Підключено інший пристрій <Він встановлений на цьому другому пристрої
  3. Через деякий час підключив перший пристрій і він спрацював!

Це дуже дивно, але це працювало для мене, може працювати для інших і врятувати розчарування.


0

Нарешті я зрозумів, що відбувається ... майже у мене 2 години

Моя справа - дата мого телефону невірна. Я забув, що змінив дату свого телефону. Я думаю, що термін дії моїх профілів резервування закінчився ...

Тож якщо ви спробували всі ці відповіді, але нічого не виходить. Перейдіть у НАСТРОЙКИ, перевірте дату свого телефону.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.