Re[3]: xcodebuild, automatic code signing и CI
От: kpcb Россия  
Дата: 11.03.19 04:38
Оценка: 4 (1)
Здравствуйте, Dair, Вы писали:

D>Здравствуйте, kpcb, Вы писали:


D>>>Может, RSDN в курсе? Как у вас делается CI под iOS и, особенно, code signing?

K>>Сборка, подписывание, публикация, загрузка отладочных символов, всё делается при помощи fastlane

D>А как оформлено подписывание в fastlane?


D>У нас в проектах везде автоматическое подписывание прописано. Так оно не работает.

D>Я взял fastlane, написал сначала sigh и cert, так оно хочет зачем-то каких-то непонятных привилегий, а пользователь ci как developer в программе разработки указан.

D>Автоподписывание, как я уже указал выше, не работает. Начал писать disable_automatic_signing. Оказалось, что надо его указывать и для подпроектов тоже, но не для POD-проектов. Ну и вот такой геморрой.


вот фрагмент lane-a, который собирает версию ad-hoc для публикации d Fabric

entitlements = '<entintelments-file>.entitlements'
xcargs = "CODE_SIGN_ENTITLEMENTS='" + entitlements + "'"

xcargs = xcargs + " GCC_PREPROCESSOR_DEFINITIONS='$(inherited) ENABLE_DIAGNOSTIC=1' OTHER_SWIFT_FLAGS='$(inherited) -D ENABLE_DIAGNOSTIC'"

provisioning_type = 'adhoc'

match(
    team_id: '...TeamID...',
    app_identifier: ['...applicationID...'],
    type: provisioning_type,
    readonly: true
)

xcargs = xcargs + " PROVISIONING_PROFILE='" + ENV["sigh_" + '...applicationID...' + "_" + provisioning_type] + "'"
xcargs = xcargs + " PROVISIONING_PROFILE_SPECIFIER='" + ENV["sigh_" + '...applicationID...' + "_" + provisioning_type + "_profile-name"] + "'"

# unlock an existing keychain and add it to the keychain search list
unlock_keychain(
    path: keychain_path,
    password: keychain_password
) unless keychain_path.nil? || keychain_password.nil?

sh("security set-keychain-settings -t 3600 -l #{keychain_path}") unless keychain_path.nil?

# clear derived data
clear_derived_data(
    derived_data_path: derived_data_path
) unless derived_data_path.nil?

ipa_path = gym(
    workspace: 'your-project.xcworkspace',
    scheme: scheme,
    xcargs: xcargs,
    include_bitcode: false,
    clean: true,
    configuration: 'Release',
    export_method: 'ad-hoc',
    derived_data_path: derived_data_path,
    skip_profile_detection: true
)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.