Ошибка библиотеки Dyld при загрузке на Jenkins - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть проект, который использует CocoaPods в качестве менеджера библиотеки. Проект имеет 5 динамических и 2 статических библиотеки, которые устанавливаются через Pod. Проект Pods имеет настройки по умолчанию. Проект имеет схемы для разных сред. Для схем (Dev, Test и т. Д.) Я делаю их «Shared». Все, кроме этого, по умолчанию. Когда я генерирую IPA из Xcode, все работает нормально. Однако, когда я использую Jenkins, я могу получить IPA, но он выходит из строя на устройстве.

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

Описание завершения: DYLD, библиотека не загружена: @ rpath / Alamofire.framework / Alamofire | Ссылка на: /var/containers/Bundle/Application/SOMEID/MyProject_Dev.app/MyProject_Dev | Причина: подходящее изображение не найдено. Нашел: | /private/var/containers/Bundle/Application/SOMEID/MyProject_Dev.app/Frameworks/Alamofire.framework/Alamofire: подпись кода заблокирована mmap () из '/private/var/containers/Bundle/Application/SOMEID/MyProject_Dev.app/ Каркасы / Alamofire.framework / Alamofire '| /private/var/containers/Bundle/Application/SOMEID/MyProject_Dev.app/Frameworks/Alamofire.framework/Alamofire: подпись кода заблокирована mmap () из '/private/var/containers/Bundle/Application/SOMEID/MyProject_Dev.app/ Каркасы / Alamofire.framework / Alamofire '| /private/var/containers/Bundle/Application/SOMEID/MyProject_Dev.app/Frameworks/Alamo Вызывается потоком: 0

My Pod File:

project 'MyProject.xcodeproj'

def pods
# Pods for MyProject
pod 'Alamofire'
pod 'SVProgressHUD'
pod 'GoogleAnalytics'
pod 'AssistantKit'
pod 'Fabric'
pod 'Crashlytics'
pod 'SwiftyJSON', '~> 4.0'
pod 'DropDown'

end

target 'MyProject_Dev' do
    use_frameworks!
    pods
end
target 'MyProject_Prod' do
    use_frameworks!
    pods
end
target 'MyProject_QA' do
    use_frameworks!
    pods
end
target 'MyProject_Local' do
    use_frameworks!
    pods
end
target 'MyProject_Pilot' do
    use_frameworks!
    pods
end

target 'MyProject_Test' do
    use_frameworks!
    pod 'GoogleAnalytics'
end

post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings[‘PROVISIONING_PROFILE_SPECIFIER’] = ''
end
end

Когда я искал, я пытался:

  1. Сделайте также доступ к проекту Pods.
  2. Попробуйте получить сборку релиза вместо отладки.
  3. Я также распаковываю IPA и заглядываю в папку Framework. Он содержит все динамические библиотеки (которые могут вызвать ошибку) как libraryName.framework.

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

dyld: библиотека не загружена: @ rpath / libswift_stdlib_core.dylib

Библиотека OS X Framework не загружена: «Изображение не найдено»

РЕДАКТИРОВАТЬ: Код сборки Jenkins;

/usr/bin/xcodebuild -list -workspace MyProject.xcworkspace
/usr/bin/xcodebuild -scheme MyProject_Dev -workspace MyProject.xcworkspace -configuration Release clean build CONFIGURATION_BUILD_DIR=${WORKSPACE}/build -UseModernBuildSystem=0
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${WORKSPACE}/build/MyProject_Dev.app" -o ${WORKSPACE}/build/MyProject_Dev-${PRODUCT_VERSION}-${PRODUCT_VERSION}.ipa

ditto -c -k --keepParent -rsrc "${WORKSPACE}/build/MyProject_Dev.app.dSYM" ${WORKSPACE}/build/MyProject_Dev-${PRODUCT_VERSION}-${PRODUCT_VERSION}-dSYM.zip

РЕДАКТИРОВАТЬ 2: У меня есть еще один проект, который работает на той же спецификации, и он работает как шарм. Когда я выполняю файл file.framework / framework в этом проекте, я вижу, что в поврежденном файле отсутствует Mach-O dynamically linked shared library arm_v7. Однако я не знаю, связано ли это с этой проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...