Подтвердить что ты не робот

Xcodebuild - codesign -vvvv говорит, что "ресурс конверт устарел"

Я только что обновил мою установку xcode, чтобы использовать xcode 6.0.1, чтобы начать компиляцию моего приложения для устройств ios8. По какой-то причине я не могу правильно подписать файл приложения, который создается с помощью следующего:

xcodebuild -project GrantM/GrantM.xcodeproj -configuration Release

он компилирует код и выглядит нормально, но работает:

/usr/bin/codesign --verify -vvvv GrantM/GrantM.app

дай мне:

Program /usr/bin/codesign returned 1 : [GrantM/GrantM.app: resource envelope is obsolete]
Codesign check fails : GrantM/GrantM.app: resource envelope is obsolete

проверка того, что код был подписан вообще, используя:   /usr/bin/codesign -dv GrantM/GrantM.app

возвращает:

Executable=Documents/GrantM/GrantM/GrantM.app/GrantM
Identifier=com.grantapps.GrantM
Format=bundle with Mach-O universal (armv7 (16777228:0))
CodeDirectory v=20200 size=647 flags=0x0(none) hashes=23+5 location=embedded
Signature size=4336
Signed Time=24 Sep 2014 12:54:53 pm
Info.plist entries=34
TeamIdentifier=N3KKU46JLY
Sealed Resources version=2 rules=5 files=55
Internal requirements count=1 size=180

Кто-нибудь еще сталкивается с подобными проблемами в OSX 10.9.5 и xcode 6.0.1? Или я просто немного глуп и делаю что-то очевидное неправильно?

Кроме того, я смог найти отладочную версию приложения, сгенерированную в xcode, и мог успешно ее подписать, но в качестве отладочной версии он не будет работать для распространения. Я даже не могу вручную подписать файл сгенерированного файла xcodebuild.

спасибо за любую помощь или совет заранее.

4b9b3361

Ответ 1

Если вы используете Mac OSX 10.9.5 или новее, возникает проблема с кодировкой ОС с использованием сигнатуры V2.

Итак, используйте флаг --no-strict с codesign --verify, чтобы преодолеть эту ошибку.

Если вы используете PackageApplication для создания файла .ipa,

Отредактируйте инструмент PackageApplication perl script, используя vi PackageApplication команды и обновляющие функции функции кодов, чтобы передать параметр --no-strict.

Пример:

my $result = runCmd ( "/usr/bin/codesign", "--verify", "- no-strict" , "-vvvv", $plugin);

Я столкнулся с тем же и получил ответ от Apple Dev Team. Проблема решена для меня.

Инструмент командной строки "codeign" изменился в 10.9.5 и 10.10, вам нужно передать команду "--no-strict" в команду (проблема была сообщена и будет исправлена). Чтобы устранить проблему, сохраните копию и измените PackageApplication, чтобы передать "-no-strict" в код, вы можете найти PackageApplication, выполнив следующее: xcrun -sdk iphoneos -f PackageApplication

Ответ 2

У меня есть система Jenkins CI для обеспечения автоматической сборки нашего приложения iOS из нашего репозитория git. Кроме того, я также загружаю/отправляю построенный в Crashlytics для мониторинга журнала сбоев.

Все отлично работало с Xcode 6.0 GM, но с момента установки Xcode 6.0.1 загрузка в Crashlytics завершилась с той же ошибкой. Я прошу об их помощи.

Часть моего задания на сборку использует xcodebuild для создания архива приложения, и из этого я также использую PackageApplication для получения файла .ipa, а PackageApplication выдает команду codeign, и это не сработает. Я использую сборку распределения, а не debug тоже.

Вот команда, которую я использую для очистки/архивирования приложения в моей работе:

xcodebuild clean archive -scheme MyScheme -target MyTarget -sdk iphoneos -configuration AdHoc CODE_SIGN_IDENTITY="iPhone Distribution: MyCompany" PROVISIONING_PROFILE="UDID_Of_Provisioning_Profile"

Вот команда, которую я использую для упаковки/получения файла .ipa приложения из созданного архива:

xcrun -sdk iphoneos PackageApplication "Path/to/MyApp.app" -o "/Path/To/MyApp.ipa" --sign "iPhone Distribution: MyCompany" --embed "Path/To/UDID_Of_Provisioning_Profile.mobileprovision"

Попробуйте изменить те, которые соответствуют вашей настройке, и посмотрите, есть ли у вас такая же ошибка.

Ответ 3

В моем случае я проверил каждую структуру и dylib, которые я использовал, чтобы выяснить, что отклонено, а затем уйти в отставку из этой самой структуры или dylib, и все приложение спасло мою задницу.

Ответ 4

Чтобы избежать этой ошибки, выполните следующие действия.

  • Удалить CFBundleResourceSpecification = ResourceRules.plist из Info.plist
  • Избегайте --resource-правил в строке codeign и выполняйте подписание кода.
  • Verify App: codesign --verify -vvvv Полезная нагрузка /*. приложение

Ответ 5

В OS 10.10 мне нужно удалить --resource-rules в строке codesign

my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve 
metadata=identifier,entitlements","--sign", $opt{sign});