Підписання коду потрібно для типу продукту Тестовий комплект продукту в SDK iOS 8.0


128

Отримання

Підписання коду потрібно для типу продукту "Unit Test Bundle" в SDK "iOS 8.0"

Моя ціль програми - це добре підписання коду, але це не тест. Я купив новий комп'ютер, створив новий сертифікат розробки з комп'ютера, оновив профіль надання відповідно, встановив і те, і інше, але не можу оминути цю помилку підписання коду.

Будь-який спосіб витерти всі серти / профілі локально, щоб я міг перевстановити?

Напевно, якась помилка.


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

Відповіді:


129

Проблема в тому, що проект знаходиться під контролем джерела, і кожен раз, коли я тягну .xcodeproj оновлюється. Оскільки мій профіль резервування відрізняється від режиму управління джерелом, ціль блочного тесту автоматично переходить на "Не кодувати знак". Тому мені просто потрібно встановити профіль там після кожного витягування git.

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

Кроки:

1) Змінення цілі на тестову ціль (AppnameTests)

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

2) Переконайтесь, що "Ідентифікатор підпису коду" НЕ "Не підписуйте код". Виберіть профіль, з яким підпишіться

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

Це все, що мені довелося змінити, щоб змусити його працювати.


Я зіткнувся з тією самою проблемою, яку згадував у вищезазначеному питанні, але не в змозі розібратися, як її вирішити, і я розмістив питання щодо тієї ж. stackoverflow.com/questions/27312745/…
Ніл

Скажіть, будь ласка, покроковий процес, як це зробити.
Ніл

Виникла проблема в Xcode 8. Дозвіл був не тотожним вашому, але близьким. Дякуємо, що показали мені дорогу!
користувач3259235

Крім того, крім встановлення "Ідентифікатор підпису коду", можливо, вам доведеться також встановити "Команду розвитку".
біт і

100

Я вирішив проблему (тимчасово), перейшовши в «Редагувати схему», а потім у розділ «Збірка», видаляючи тестування моєї одиниці, щоб не викликати в «Виконати».


1
Гарний улов! Чому ти кажеш тимчасово ? Це виглядає як розумне рішення для мене. Ви подали додаток у магазин?
mokagio

Немає проблем із подачею програми в App Store. Я сказав "тимчасово", тому що я зрозумів, що можливе більш постійне виправлення, обмінюючись підписом коду, але це було швидким виправленням без проблем.
ZS

2
Класно, дякую. Мені це здається хорошим рішенням, тестова ціль одиниці не повинна виконуватись. +1
mokagio

Чи можете ви пояснити мені детальніше? ти маєш на увазі, що я повинен "будувати"? і я не розумію, що "вилучення мого тесту з виклику в" Виконати "
LKM

66

Інші поради тут не допомогли мені, але я виправив цю помилку, перейшовши на Product > Scheme > Edit Scheme. Потім я натиснув Buildна лівий бік і знімав усі прапорці поруч AppNameTests. Я використовую XCode 6.3

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


@Almo Не зніміть прапорці під "Тест", а замість цього зніміть усе (що ви можете зняти) у рядку з написом APPNAMEtests. Я включу скріншот у свою відповідь, щоб допомогти уточнити.
Олівія Лелека

1
Я це зробив, і все було перевірено, крім Тесту. Виявилося, що мені довелося видалити файл .plist, щоб змусити його перестати намагатися підписати тест з кодом. Мій проект будує статичну бібліотеку, тому жодну з них не потрібно кодувати.
Алмо

1
Ах гаразд. Ну, звичайно, здається, що існує багато причин, через які ця проблема може бути викликана, і так само багато способів її усунення. Якщо ніхто інший не згадав про ваше рішення, ви можете розглянути публікацію як іншу можливу відповідь.
Олівія Лелека

3
@huggie ¯ \ _ (ツ) _ / ¯ Ласкаво просимо в програмування iOS!
Олівія Лелека

1
@OliviaStork ви мене зобов'язали. дякую тобі за збережену роботу.
Анураг Шрівастава

29

Я виправив її, вибравши профіль резервування вручну в налаштуваннях збірки для тестової цілі.

Тестові налаштування цілі -> Налаштування збірки -> Підпис коду -> Ідентифікація знаку коду. Раніше було встановлено "Не кодувати знак".


Вибір профілю резервування явно працював для мене, дякую.
Майк Веллер

Також переконайтеся, що вгорі вибрано фільтр "Усі", а не "Основний".
Марті

13

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

Я змінив шахту з "myIphone" на тренажер iPhone 6 Plus, і це вирішує проблему під час розробки програми.


1
але що робити, якщо ви хочете розгорнути додаток на фізичному пристрої?!
Марвен Трабелсі

8

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

Помилка CodeSign: підпис коду потрібен для типу продукту "Unit Test Bundle" в SDK "iOS 8.4"

Насправді ціль нічого не реалізувала, тому швидке рішення - це її усунути.

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


2

Я отримував цю помилку під час запуску xcodebuild з командної лінії для інтеграційних тестів на CI моєї роботи. Мені вдалося змусити його працювати, встановивши налаштування рівня проекту на кодизайн. Чомусь цільове налаштування було ігноровано, воно повернулося до проекту.


2

Якщо з вищезгаданих питань нічого не працює, виконайте ці кроки

У меню "Цілі" виберіть ім'я програмиТести в розділі "Інформація"

Змініть наступне

Ідентифікатор групи: com.ProjectName. $ (PRODUCT_NAME: rfc1034identifier)

до com.ProjectName.appname

Назва пакету: $ (PRODUCT_NAME)

Назва групи: ім'я програми

Скомпілювати та виконати


1

Я вирішую проблему, змінюючи "Профілювання надання" в тому ж розділі ("Підпис коду") з Автоматичне на "Ім'я MyProvisioningProfile"


0

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


0

Іноді це трапляється, коли ви завантажуєте проект з github чи інших сторонніх навчальних сайтів. Ці програми зазвичай підписуються з іншою особою чи компанією / найменуванням. Коли це станеться, якщо ви не можете вирішити рішення, просто створіть новий проект xcode і скопіюйте всі файли заголовка та реалізації у ваш новий проект. Також не забудьте файли залежності .. як і файли рамки. Це працює для мене.

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