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.
спасибо за любую помощь или совет заранее.
Ответы
Ответ 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});