PackageApplication перестала работать с OS X 10.10 (Yosemite) сегодня

UPDATE: Правильный ответ, вероятно, следующий: Ошибка Xcode 6.1 при создании IPA

Использование Jenkins для создания проектов iOS из репозиториев с нескольких лет. Внезапно сегодня возникает новая ошибка, останавливающая сборки.

Я думаю, что большую часть этой установки на этом учебном пособии я вернул:

http://www.raywenderlich.com/22816/beginning-automated-testing-with-xcode-part-22

Этот шаг вызывает ошибку:

# 4
echo "*** Post build step 4"
/usr/bin/xcrun -sdk iphoneos PackageApplication \
-o "${IPA_DIR}/${PROJECT}.ipa" \
-verbose "${APP}" \
-sign "${SIGNING_IDENTITY}" \
--embed "${PROVISIONING_PROFILE}"

Немного сложно просмотреть журналы, где произошла ошибка, но вот это:

### Codesigning '/Users/Shared/Jenkins/Home/jobs/myapp/workspace/myapp_adhoc_7.mobileprovision' with 'iPhone Distribution: mycompany Inc.'
+ /usr/bin/codesign --force --preserve-metadata=identifier,entitlements,resource-rules --sign iPhone Distribution: mycompany Inc. --resource-rules=/var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app/ResourceRules.plist --entitlements /var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/entitlements_plistYdluSmqT /var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app
Program /usr/bin/codesign returned 1 : [Warning: usage of --preserve-metadata with option "resource-rules" (deprecated in Mac OS X >= 10.10)!
Warning: --resource-rules has been deprecated in Mac OS X >= 10.10!
/var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app/ResourceRules.plist: cannot read resources
]
error: /usr/bin/codesign --force --preserve-metadata=identifier,entitlements,resource-rules --sign iPhone Distribution: mycompany Inc. --resource-rules=/var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app/ResourceRules.plist --entitlements /var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/entitlements_plistYdluSmqT /var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app failed with error 1. Output: Warning: usage of --preserve-metadata with option "resource-rules" (deprecated in Mac OS X >= 10.10)!
Warning: --resource-rules has been deprecated in Mac OS X >= 10.10!
/var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app/ResourceRules.plist: cannot read resources

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

  • Я не указал --resource-rules в любых настройках. Я предполагаю, что xcrun использует этот параметр самостоятельно, хотя он устарел.

Ответ 1

Нашел ответ.

Проблема, которая возникла сейчас, - это "xcrun PackageApplication", что-то вроде строки. Мне пришлось удалить параметр "-sign some profile", после чего все снова заработало.

Это говорит, что я не знаю, почему подписание было необходимо раньше, и почему это не так, так что не могу сказать, будет ли это позже вызывать некоторые проблемы.

Ответ 2

Вместо использования xcrun вы можете использовать xcodebuild для создания архива, а затем запустить xcodebuild снова, чтобы создать файл IPA.

# Create an archive
xcodebuild -alltargets -configuration "${CONFIGURATION}" -scheme "${SCHEME}" -archivePath "${APP_PATH}/${PROJECT}.xcarchive" archive

# Create the IPA file from the archive
xcodebuild -exportProvisioningProfile "${PROVISIONING_PROFILE_NAME}" -exportArchive -exportFormat IPA -archivePath "${APP_PATH}/${PROJECT}.xcarchive" -exportPath "${IPA_DIR}/${PROJECT}.ipa" CODE_SIGN_IDENTITY="${SIGNING_IDENTITY}"

Обратите внимание, что ${PROVISIONING_PROFILE_NAME} должно содержать имя временного профиля, а не путь к самому файлу.