无法加载捆绑的UITest,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包

时间:2019-01-25 12:41:35

标签: ios swift cocoapods swift4

我的豆荚在这里

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

target 'myAPP' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for myAPP
  pod 'SwiftMessages'
  pod 'IQKeyboardManager'
  pod 'SwiftKeychainWrapper'
  pod 'Tabman'
  pod 'PagingMenuController'
  pod 'Kingfisher'
  pod 'Optik'
  pod 'KRPullLoader'
  pod 'AlamofireImage'
  pod 'Firebase/Core'
  pod 'Firebase/Database'
  pod 'Firebase/Messaging'
  pod 'Firebase/Auth'
  pod 'Firebase/Storage'
  pod 'TCPickerView'
  pod 'GoogleMaps'
  pod 'GooglePlaces'
  pod 'Whisper'
  pod 'Fabric'
  pod 'Crashlytics'
  pod 'SwiftyJSON'
  pod 'Alamofire'
  pod 'SwiftGridView'
  target 'myAPPUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

我正在使用Swift 4,Xcode 10.1

  1. 无法加载捆绑包“ myAPPUITests”,因为它已损坏或缺少必要的资源。尝试重新安装捆绑软件。 myAPPUITests-Runner [3649:845498]
  2. 未加载库:@ rpath / Alamofire.framework / Alamofire 引用自:/ var / containers / Bundle / Application / 9948D3F3-0BC3-4E51-8611-934A8872BC25 / myAPPUITests-
  3. Runner.app/PlugIns/myAPPUITests.xctest/myAPPUITests 原因:找不到图片)

我尝试了不同的解决方案,但没有一个对我有用。

这是我的豆荚版本 enter image description here

5 个答案:

答案 0 :(得分:3)

该UITests捆绑包已损坏或缺少必要的资源,因此无法加载。尝试重新安装捆绑包

验证以下位置是否所有目标都使用相同的iOS版本: 构建设置-> iOS部署目标

答案 1 :(得分:2)

要安装所有依赖项,我将以下几行添加到您的Podfile中:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if ['PagingMenuController', 'TCPickerView'].include? target.name
      target.build_configurations.each do |config|
        config.build_settings['SWIFT_VERSION'] = '3.0'
      end
    end
  end
end

然后我从您的Podfile中删除了use_frameworks!(有关更多详细信息,请参见this link),运行pod update,之后我就可以运行测试了。

有关更多详细信息,请参见this answer

答案 2 :(得分:1)

如果您使用的是swift 3或swift 4,并且想要将UITest添加到您的项目中,请不要忘记以下步骤:

  1. 从您的Pod文件中删除use_frameworks!,并使用以下类似的Pod版本更新您的Pod文件
  2. 使用post_install指定您的swift version
  3. 在两个目标应用程序(myAPP和myAPUITests)中都删除ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES或将它们设置为No
  4. 然后运行以下命令:
  5. pod deintegratepod cleanpod install

    #取消注释下一行以为您的项目定义一个全球平台     平台:ios,“ 9.0”

    目标'myAPP'做           #如果您不使用Swift且不​​想使用动态框架,请注释下一行

          # Pods for myAPP
            pod 'SwiftMessages', '4.1.4'
            pod 'IQKeyboardManager', '6.1.1'
            pod 'SwiftKeychainWrapper', '3.0.1'
            pod 'Tabman', '1.9.1'
            pod 'PagingMenuController', '2.2.0'
            pod 'Kingfisher', '4.8.0'
            pod 'Optik', '0.3.0'
            pod 'KRPullLoader', '1.1.3'
            pod 'AlamofireImage', '3.3.1'
            pod 'Firebase/Core'
            pod 'Firebase/Database'
            pod 'Firebase/Messaging'
            pod 'Firebase/Auth'
            pod 'Firebase/Storage'
            pod 'TCPickerView', '0.2.5'
            pod 'GoogleMaps', '2.7.0'
            pod 'GooglePlaces', '2.7.0'
            pod 'Whisper', '6.0.2'
            pod 'Fabric', '1.7.9'
            pod 'Crashlytics', '3.10.5'
            pod 'SwiftyJSON', '4.1.0'
            #pod 'Alamofire', '4.7.3'
          pod 'SwiftGridView', '0.6.5'
          target 'myAPPUITests' do
            inherit! :search_paths
            # Pods for testing
          end
        end
    

在pod文件末尾添加以下内容

post_install do |installer|
    print "Setting the default SWIFT_VERSION to 4.0\n"
    installer.pods_project.build_configurations.each do |config|
        config.build_settings['SWIFT_VERSION'] = '4.0'
    end

installer.pods_project.targets.each do |target|
    if [].include? "#{target}"
        print "Setting #{target}'s SWIFT_VERSION to 4.2\n"
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '4.2'
        end
    else
        print "Setting #{target}'s SWIFT_VERSION to Undefined (Xcode will automatically resolve)\n"
        target.build_configurations.each do |config|
            config.build_settings.delete('SWIFT_VERSION')
            #config.build_settings['SWIFT_VERSION'] = '4.0'
        end
    end
end
end

答案 3 :(得分:0)

检查测试目标并检查iOS部署目标。

选择APPUITests->构建设置->部署-> iOS部署目标

就我而言,我在iPhone SE(iOS 11.1)上运行,测试目标iOS部署目标为13.1。我将iOS部署目标更改为11.0,并为我正常工作。

答案 4 :(得分:0)

我的问题已解决,将丢失的 Pod 添加到测试目标。

看起来类似于下面的代码:

target 'myAPP' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for myAPP
  pod 'SwiftMessages'
  pod 'IQKeyboardManager'

  target 'myAPPUITests' do
    inherit! :search_paths
    # Pods for testing
      pod 'SwiftMessages'
      pod 'IQKeyboardManager'

  end

end