я получаю эту ошибку в своем конвейере DevOps для сборки IOS собственного приложения реагирования
Файл RCTAppDelegate.h не найден.
/Users/runner/work/1/s/ios/MyNewApp/AppDelegate.h:1:9: Файл RCTAppDelegate.h не найден
КомпилироватьC /Users/runner/Library/Developer/Xcode/DerivedData/MyNewApp-ajfktijvrkpgmscslwbprnszgveb/Build/Intermediates.noindex/MyNewApp.build/Release-iphonesimulator/MyNewApp.build/Objects-normal/x86_64/AppDelegate.o
/Users/runner/work/1/s/ios/MyNewApp/AppDelegate.mm обычный x86_64 Objective-C++ com.apple.compilers.llvm.clang.1_0.compiler (в целевом «MyNewApp» из проекта «MyNewApp») (1 сбой)
Кто-нибудь может мне помочь?
определение конвейера ниже:
trigger:
- Integration
variables:
- group: Mobile
pool:
vmImage: macos-latest
steps:
- checkout: self
persistCredentials: true
clean: true
- task: NodeTool@0
inputs:
versionSpec: '20.x'
displayName: 'Install Node.js'
- script: |
yarn install
displayName: 'yarn install and build'
- script: |
yarn bundle:ios
displayName: 'RN build'
- task: InstallAppleCertificate@2
inputs:
certSecureFile: 'DistCertfr2024.p12'
certPwd: '$(AppleCertPassword)'
keychain: 'temp'
deleteCert: true
- task: InstallAppleProvisioningProfile@1
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: 'fr2024ProvisioningV1.mobileprovision'
removeProfile: true
- script: |
cd ios
pod install
xcodebuild -showsdks
displayName: 'Install CocoaPods dependencies'
- task: Xcode@5
inputs:
actions: 'build'
sdk: 'iphonesimulator'
scheme: 'MyNewApp'
packageApp: true
signingOption: 'manual'
provisioningProfileName: 'fr2024ProvisioningV1'
configuration: 'Release'
xcWorkspacePath: 'ios/MyNewApp.xcodeproj'
exportPath: 'output'
destinationPlatformOption: default
- task: CopyFiles@2
inputs:
Contents: '**/*.ipa'
TargetFolder: '$(build.ArtifactStagingDirectory)'
OverWrite: true
flattenFolders: true
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'ios'
publishLocation: 'Container'
yarn bundle:ios скрипт переводится как:
"bundle:ios": "react-native bundle --entry-file='index.js' --bundle-output='./ios/MyNewApp/main.jsbundle' --dev=false --platform='ios' --assets-dest='./ios'"
Я проверил образец YAML, которым вы поделились. Можете ли вы подтвердить, существует ли проблема на этапе сборки Xcode. Если да, вы можете попробовать установить файл .xcworkspace вместо файла .xcodeproj в задаче Xcode -> поле xcWorkspacePath.
Да, Кевин, это помогло продвинуться дальше. Спасибо ! Теперь это проблема компоновщика с повторяющимися символами. Хотя названная проблема решена, я хотел бы продолжать добавлять другие последующие ошибки сборки, пытаясь решить эту проблему. Новая ошибка: ❌ ld: 4 повторяющихся символа для архитектуры x86_64. Буду добавлять подробности журнала в надежде почерпнуть здесь некоторые идеи.
ОК, я вижу несколько ответов на проблему с повторяющимися символами на stackoverflow.com/questions/76171249/… попробую
Спасибо за ваше обновление. Рад узнать, что это предложение может помочь вам. Для текущей проблемы в вопросе я добавил ответ, чтобы поделиться решением. Что касается последней проблемы: ld: 4 повторяющихся символа для архитектуры x86_64, вы можете попытаться исключить x86_64 в файле xcconfig (добавьте содержимое: EXCLUDED_ARCHS[sdk=iphonesimulator*] = x86_64). Вот билеты на аналогичный вопрос: stackoverflow.com/questions/69692735/… и stackoverflow.com/questions/39512823/…





/Users/runner/work/1/s/ios/MyNewApp/AppDelegate.h:1:9: файл RCTAppDelegate.h не найден
Чтобы решить эту проблему, нам нужно установить файл .xcworkspace вместо файла .xcodeproj в поле задачи Xcode -> xcWorkspacePath.
Например:
- task: Xcode@5
inputs:
actions: 'build'
sdk: 'iphonesimulator'
scheme: 'MyNewApp'
packageApp: true
signingOption: 'manual'
provisioningProfileName: 'fr2024ProvisioningV1'
configuration: 'Release'
xcWorkspacePath: 'ios/MyNewApp.xcworkspace'
exportPath: 'output'
destinationPlatformOption: default
Можете ли вы успешно построить проект на своем локальном компьютере? Какая версия Xcode на вашем локальном компьютере? Вам необходимо поделиться определением конвейера в вопросе. Это будет полезно для дальнейшего изучения вопроса.