Виконавчий файл підписується недійсними правами в Xcode


113

Я отримав цю помилку з Xcode 5, коли я намагаюся запустити додаток на своєму пристрої.

Виконаний файл був підписаний з недійсним правом

Він добре працював з Xcode 4.x. Хтось знає, як позбутися помилки?

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


У мене Xcode 8.3.3, і ця відповідь насправді зробила це для мене: stackoverflow.com/a/40464055/4177294
Nuno MSB

Відповіді:


101

Я протягом години захопився цим питанням і нарешті знайшов виправлення. Виявилося, що група розробників відрізнялася в ProjectTarget та ProjectTests.


13
Дуже дякую! Це просто допомогло мені і заощадило багато часу!
Маркі

Оце Так! Дякуємо @Krish
Kqtr

ви, сер, щойно врятував мій четвер, не можу вам подякувати достатньо
Самер Мурад

де я можу знайти ProjectTarget та ProjectTests?
Пабло

ах! знайшов це! днів на це, і це витрачало саме цю установку!
Пабло

77

Перезапуск Xcode - це те, що працювало для мене.


15
Так Xcode прийняв універсальне виправлення Microsoft. ;) Для запису це все ще проблема, і перезапуск все ще є виправленням (я використовую v7.3.1).
Ерік Сойке

3
ще +1, зіткніться з цією проблемою ще раз, потім погуглити її, я приземлився тут.
jayellos

Після години перевірки кожної деталі ... це спрацювало в XCode 8
Matej Ukmar

Хто-небудь має міцне рішення цієї проблеми !!!!, усі ці рішення виглядають як деякі ситуативні роботи. Будь ласка, допоможіть.
Макс

Насправді команда з розробки проектів та команда розробки тестових проектів однаково працювали для мене
Тахмід Рахман

35

Я з’ясував проблему. Додаток, який я створив на developer.apple.com, не включає звук між додатками. У файлі плістів прав на проект Xcode встановлено звук між додатками та встановлено значення ТАК (за замовчуванням). Одного разу я змінив налаштування в моїй конфігурації програми на developer.apple.com, щоб увімкнути звук між додатками. Потім мій додаток працює на моїх пристроях. Я думаю, що це нове правило Apple, яке дозволяє налаштувати додаток як на developer.apple.com, так і на налаштуваннях проекту xcode.


10
Я переключив функцію аудіо-додатків у положення ВКЛ., А потім знову вимкнено, і таким чином програма працювала ... WT *?
Ферран Мейлінч

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

Те ж саме! Це дуже дивно. Я думаю, ви можете переключити будь-які можливості, щоб виправити це.
Андре Сімон

Спробував все, що все ще стикається з тією ж проблемою!, Будь-які пропозиції
Макс

24

Мені вдалося виправити це, включивши / вимкнувши права "Ігровий центр" у Xcode 5 :-)


5
СПАСИБІ! Ви не маєте поняття, наскільки я був розчарований цілий ранок, поки не натрапив на вашу відповідь. Однозначно виправили це для мене.
Гаспер Коленц

1
Будь ласка, майте на увазі, що Xcode генерує профіль резервування для вас та визнає недійсним ваш спеціальний профіль створення резерву.
Van Du Tran

@VanDuTran ні, не буде.
Нік

Це сталося в додатку Xamarin, а також у Visual Studio для Mac. Тож це не просто ізольовано до Xcode.
Ден Болье

19

Жодне рішення не працювало для мене, поки я не перевірив і встановив тести додатків на той самий профіль забезпечення, що і основний. Або якщо ви використовуєте автоматичний спів, переконайтесь, що в цілі тестів вибрана та сама команда.


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

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

19

Для XCode 10, можливо, потрібно буде використовувати застарілу систему збирання

Зміни можуть бути внесені в параметри файлу / проекту. ПОМИЛКА ITMS-90174: "Відсутній профіль надання послуг - Програми iOS повинні містити профіль забезпечення у файлі з назвою embedded.mobileprovision."

Кордова / іонна анонс: https://github.com/apache/cordova-ios/isissue/407


1
хотілося б додати для користувачів Cordova / Ionic, що вам також може знадобитися змінити створений проект Xcode, щоб він використовував застарілий режим за допомогою "Файл> Налаштування проекту / робочої області" та змінив його на систему Legacy Build ", як детально описано тут: stackoverflow.com/a / 52605878/2503520
Вирнач

12

Рішення для останнього Xcode :

Спочатку ви повинні перевірити, що у вашому центрі учасників увімкнено для вашої конкретної програми AppID :

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

Потім у відповідній цілі в Xcode ви повинні бути включена тієї ж можливість: В цьому випадку: App Group, Game Center, In-App Purchase. Усі вони повинні бути включені у вашій цілі в Xcode.

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

Однак це не має значення для режиму DEBUG :

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

це дуже важливо для вашого режиму звільнення : введіть тут опис зображення

Зауважте, що Game Centerта In-App Purchaseувімкнено за замовчуванням у центрі члена , але відключені у вихідні Xcode в.


3
Чи можливо видалити ігровий центр та придбати додаток із developer.apple.com?
Noitidart

11

Я думаю, що ваша проблема полягає в тому, що ви використовували профіль xCode4.6, а тепер ви використовуєте xCode5.

Вам потрібно оновити профілі сертифікатів / резервування через XCode> Налаштування> Облікові записи

XCode> Налаштування> Облікові записи> Клацніть на DEV ACCOUNT> Кнопка перегляду деталей (праворуч внизу)> З'явиться екран підписання Іден / ПП> натисніть Оновити.

Потім виберіть знову з налаштувань збірки правильний профіль та очистіть та складіть свій проект.

Сподіваюся, це вам допоможе.


1
Спасибі за вашу допомогу. Я з’ясував проблему. Додаток, який я створив на developer.apple.com, не включає звук між додатками. У файлі плістів прав на проект Xcode встановлено звук між додатками та встановлено значення ТАК (за замовчуванням). Одного разу я змінив налаштування в моїй конфігурації програми на developer.apple.com, щоб увімкнути звук між додатками. Потім мій додаток працює на моїх пристроях. Я думаю, що це нове правило Apple, яке дозволяє налаштувати додаток як на developer.apple.com, так і на налаштуваннях проекту xcode.
Еммі

6

Мені довелося відповідати можливостям програми в Xcode5 під

Capabilities -> 
In-App purchase -> ON
Game Center -> ON

з цим у профілі, що формується.


Також вона вирішила відповідь APN на помилку "Недійсний маркер".
hiroshi

додавання прав на ігровий центр та видалення його також працювало для мене. Не знаю, чому.
Рукшан Марапана

5

xcode 6.1 (зразок HealthKit)

Я отримав цю помилку через інтеграцію HealthKit: я ввімкнув придбання через додаток, ігровий центр та Healkit вирішив мою проблему .. Те саме, що я ввімкнув у профілі Provision.

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

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


Довелося зробити те ж саме для обміну брелками. У мене також було розширення програми, я мусив це робити в обох місцях, щоб він працював.
КейсіБ

5

(Xcode 6.1)

Проблема для мене полягала в налаштуваннях збірки; Під час спроби розгортання на пристрої мій профіль надання послуг був встановлений у виробничому профілі магазину додатків. Я переключив його на "Автоматичний", і це вирішило мою проблему. Ви також можете встановити його у своєму профілі Dev Provision.

У мене також є 2 сертифікати, тож я додав свій другий сертифікат до мого розробки. Інші, мабуть, не матимуть цієї проблеми.


Дякую! Переключивши його на "Автоматичний", це зробило для мене
Emastmagy MastMagy

Дивно, що змінившись на автоматичну, виправили це, але це працювало на мене. У мене був створений профіль резервування на com.mycompany. * І отримувала цю помилку. На вкладці "Здатності" з'явився червоний FixMe, але після виправлення цієї проблеми я все-таки отримав помилку недійсних прав. Потім я спробував змінити свій профіль резервування з com.mycompany. * На автоматичний, і це вирішило проблему. Я двічі перевірив, що bundleID - com.mycompany.blabla, тому здається, це якась помилка Xcode. Я використовую Xcode 6.3.2.
Джим Діапазон

5

У мене була подібна проблема, коли я оновив до Xcode 10, вирішив проблему, перейшовши до Файл> Налаштування проекту, в опції «Нова система збирання» виберіть «Спадкова система збирання». Це зробило для мене хитрість, я сподіваюся, що це комусь допоможе.


4

Просте очищення та збирання здавалося, що це вирішило для мене.


Це було виправленням і для мене.
Еніяр

4

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

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


3

Я вирішую це, видаляючи всі "PROVISIONING_PROFILE=..."і "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...в project.pbxproj і перезавантажую Xcode і знову встановлюю профілі забезпечення для цілі.


3

Якщо перезапуск xcode не працює, створіть новий профіль надання та обов’язково включіть свої тестові пристрої.


Перезапуск / очищення не працювало для мене, але потім я зрозумів, що не додав свій новий тестовий телефон до профілю Спеціальний профіль, з яким я будував. Я відновив / завантажив оновлений профіль, і помилка усунулася. Примітка. Після цього у вас може виникнути помилка "безпеки", що означає, що пристрою потрібно авторизувати додаток, просто торкніться програми на пристрої, щоб активувати попередження "довіряючий розробник".
SafeFastExpressive

3

У моєму випадку пристрій не додано. Тому мені довелося додати пристрій і створити новий профіль надання.


3

Ще одна річ, що потрібно перевірити - переконайтеся, що в обох вибрані правильні сутності

Цілі -> Ваша мета -> Налаштування збірки -> Підписання

і

Проект -> Ваш проект -> Налаштування збірки -> Суб'єкт підписання коду

Я отримав це повідомлення, коли у мене було вибрано повний профіль розробника в одному та іншому (не розробник) Apple ID, обраному в іншому, навіть не вимагаючи прав у додатку.


2

Здається, це невелика помилка всередині Xcode. Спробуйте все-таки архівувати його, навіть із цим є проблема entitlements. Якщо ваші права будуть нормальними, вони будуть завантажені без проблем. Apple приймає це, і ваша програма буде опублікована в AppStore.

Я це і зробив :)



1

У мене була така ж проблема в XCode 5. Це мені все одно допомогло.

XCode > Preferences > Location tab > DerivedData

Натисніть трохи стрілки вліво, щоб відкрити DerivedData в Finder. Перемістіть у папку сміття свого проекту та відновіть його.

Знімок екрана


Напевно, повинні бути належні міркування про те, чому видалення отриманих даних вирішить проблему.
Кавіта

1

Мав якесь питання. Вирішіть: перейдіть до потрібної цілі -> можливостей -> для мене виникла проблема з "Покупкою в додатку" та кнопкою, щоб її виправити. Виправлена ​​помилка операції.


1

У моєму випадку: мені потрібно ввімкнути аудіо програму Inter-App

Capabilities -> Inter-App Audio

Я думаю, оскільки я використовую повідомлення Parse.com, воно потребує посилання на AudioToolbox.framework


1

Увімкнення можливостей -> Аудіо між додатками виправили цю проблему і для мене. Я також намагаюся надсилати push-повідомлення через розбір


1

Відповіді тут здаються трохи недостатніми, тому я додаю свої два центи:

Справжнє рішення полягає в тому, що зазвичай існує невідповідність між тим, що зберігається у вашому профілі резервування (перевірте на developer.apple.com -> members -> сертифікати -> cert, який ви використовуєте [не забудьте перевірити, чи dev / production) і що ввімкнено у вашій програмі (назва проекту подвійним клацанням миші), у горизонтальному меню виберіть "Можливості" (поруч із "Загальні").

Якщо ви нещодавно змінили одне з них, обов’язково оновіть свої сертифікати в розділі XCode -> Налаштування -> Облікові записи -> Деталі -> Значок оновлення та перезапустіть XCode.


1

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


1

У моєму випадку я повинен був прийняти ліцензійну угоду для розробника Apple.

Увійдіть до облікового запису розробника Apple і дотримуйтесь повідомлення сповіщення, подібного нижче.

"Оновлено ліцензійну угоду програми для розробників Apple. Щоб отримати доступ до певних ресурсів членства, **** має прийняти останню ліцензійну угоду до 28 червня 2016 року."

Раніше мені не вдалося додати / редагувати контейнери iCloud до ідентифікатора додатка, хоча я змінив / перевірив можливості, надання профілів, сертифікатів тощо. Після узгодження з контрактом все почало працювати безперебійно.

Сподіваємось, це заощадить чийсь цінний час.


1

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

Файл надання мобільних пристроїв насправді НЕ співпадає з файлом Entitlements, згенерованим Xcode.

Хоча всі файли автоматично обробляються інструментом Apple, вони невірні.

Якщо ви завантажуєте файл резервування з порталу Apple і відкриваєте його (ви можете відкрити його, тому що це просто пліст-файл, підписаний вашим сертифікатом, тому він читається текстовим редактором) і порівняйте його з вашим файлом Entitlements (автоматично генерується Xcode та зберігається у файлах проекту (тож це знову пліст XML-файлу, який читається текстовим редактором). Тоді ви можете побачити різницю.

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

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


1

Для тих, хто має таку ж проблему із забезпеченням автоматичного профілю профілю в цілях налаштування збірки:

Будьте дуже обережні, редагуючи файл цільових прав! Це може порушити відповідність автоматично створеному профілю надання, і ви отримаєте цю помилку.

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

<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>  

у файлі прав, і це спрацювало!
Щоб нагадати мені, що мені довелося пізніше видалити ці рядки, я просто вставив такий коментар:

<key>TODO</key>
<string>The entry below must be out commented or deleted to use the iCloud development environment.</string>  

І це порушило листування і створило помилку .


Де розміщений файл прав?
Noitidart

Він знаходиться у папці вашого проекту і називається "yourProject.entitlements". Ви можете знайти його в навігаторі проектів Xcode.
Рейнхард Маннер

Дякую. Здається, він був створений, поки я не поставив галочку, щоб зняти галочку "inter app audio". У мене є ігровий центр та покупки додатків на developer.apple.com, але я не використовую його, це налаштування за замовчуванням. Тож я позначив у своїх можливостях у xcode як "увімкнено", але незалежно від того, що я продовжую отримувати, "виконуваний файл був підписаний з недійсними правами". помилка. :(
Noitidart

1

Я використовую Push-повідомлення в своєму додатку, і після завершення розробки я намагався перевірити push-повідомлення для конфігурації релізу . Тоді я отримав цю помилку.

Я використовував профіль виробничого забезпечення для запуску до випуску . Тож я зміг вирішити цю помилку за допомогою профілю надання Adhoc .

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