2015-10-20 2 views
2

Нашего сервер CI делает ежедневно одноранговой сборку нашего приложения путем замены в другом расслоении ID так:xcodebuild будет CodeSign с Xcode 6 и альтернативным расслоением ID, но не с Xcode 7

/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.example.app.daily" \ 
    app/app-Info.plist 

, а затем строительство и архивирование xcodebuild:

xcodebuild \ 
    CODE_SIGNING_REQUIRED=YES \ 
    CODE_SIGN_IDENTITY="$DEVELOPER_NAME" \ 
    PROVISIONING_PROFILE="$PROFILE_UUID" \ 
    -sdk iphoneos \ 
    -workspace "$XCODE_WORKSPACE" \ 
    -scheme "$XCODE_SCHEME" \ 
    clean archive \ 
    -archivePath "$ARCHIVE_PATH" 

с Xcode 6 это работало отлично, но в Xcode 7 мы получаем эту ошибку:

Code Sign error: Provisioning profile does not match bundle identifier: The provisioning profile specified in your build settings (“Daily AdHoc Profile for CI Servers”) has an AppID of “com.example.app.daily” which does not match your bundle identifier “com.example.app”.

Как будто Xcode 7 не видит, что мы изменили идентификатор пакета. Это где-то в другом месте?

+1

Привет. Когда я установил 'xcode7' и сделал первую сборку, xcode предложил мне сделать настройки проекта обновления. После этого 'BUNDLE_ID' был помещен в раздел' Packaging' в настройках сборки вместо 'Info-Plist.plist'. –

ответ

8

@ Мозилла указал мне в правильном направлении. Обновление до проекта Xcode 7 перенесло идентификатор пакета в «Идентификатор набора продуктов» в разделе «Упаковка» настроек сборки.

Боковая панель помощи Xcode показала, что этот параметр был назван PRODUCT_BUNDLE_IDENTIFIER. Поэтому моя команда стала:

xcodebuild \ 
    CODE_SIGNING_REQUIRED=YES \ 
    CODE_SIGN_IDENTITY="$DEVELOPER_NAME" \ 
    PROVISIONING_PROFILE="$PROFILE_UUID" \ 
    PRODUCT_BUNDLE_IDENTIFIER="com.example.app.daily" \ 
    -sdk iphoneos \ 
    -workspace "$XCODE_WORKSPACE" \ 
    -scheme "$XCODE_SCHEME" \ 
    clean archive \ 
    -archivePath "$ARCHIVE_PATH" 

И это сработало!

Смежные вопросы