dyld:库没有加载问题。适用于设备,但不适用于模拟器

时间:2016-10-27 20:03:28

标签: ios swift xcode ios-simulator cocoapods

我知道有很多关于dyld库没有加载的帖子。但是,似乎常见的线程是它可以在模拟器上运行,但不能在设备上运行。我似乎遇到了相反的问题。我的应用程序在设备上工作正常,但在模拟器上运行时出现以下错误(尝试过iPhone 5,6,7和SE)

 dyld: Library not loaded: @rpath/CR_APIKit.framework/CR_APIKit
 Referenced from: /Users/me/Library/Developer/CoreSimulator/Devices/3069E359-20EF-4FCB-8565-F5ED29A5F76A/data/Containers/Bundle/Application/2C130BE7-9C2C-40AB-BA19-DDF28D601DD3/MyApp.app/MyApp
 Reason: image not found

CR_APIKit是一个本地pod规范,包含一些公共代码(后面会显示PodSpec)。

我在Xcode 8上使用Swift 3定位iOS 9& 10.我正在使用CocoaPods 1.1.1。模拟器和设备都在运行iOS 10。

我尝试了很多解决方案,包括:

  • 在CocoaPod和应用程序中仅将“构建活动架构”设置为“否”
  • 设置始终将Swift标准库嵌入“是”
  • 清理项目,移除窗格,更新窗格,以各种组合重新启动Xcode
  • 通过卸下设备并使用全新安装再次运行模拟器来清理模拟器
  • 确保在运行路径搜索路径中设置@ executable_path / Frameworks

值得注意的是,如果我在Target - >下添加CR_APIKit.framework文件,我已经能够在模拟器上运行它。一般 - >嵌入式二进制文件但是,这只是错误的,因为没有一个第三方pod需要这个(例如,Crashlytics可以很好地工作而不需要明确添加它的框架)。

以下是应用程序本身的Podfile:

 source 'http://<local-podpec-repo>/podspecs.git'
 source 'https://github.com/CocoaPods/Specs.git'

 platform :ios, '9.0'
 use_frameworks!

 pod 'Fabric'
 pod 'Crashlytics'

 #local pods
 pod 'CR_APIKit'

 target 'MyApp' do
 end

以下是本地套件的pod规范:

 Pod::Spec.new do |s|

    # ―――  Spec Metadata  ―――――――――――――――――――― #
    s.name         = "CR_APIKit"
    s.version      = "2.1.5"
    s.summary      = "description"
    s.homepage     = "http://<path to repo>/apikit.git"

    # ―――  Spec License  ―――――――――――――――――――― #
    s.license      = { :type => "MIT", :file => "LICENSE" }

     # ――― Author Metadata ――――――――――――――――――― #
     s.author             = { "me" => "me@me.com" }

     # ――― Platform Specifics ―――――――――――――――――― #
     s.platform     = :ios
     s.ios.deployment_target = "9.0"

     # ――― Source Location ――――――――――――――――― #
     s.source       = { :git => "http://<path to repo>/apikit.git", :tag => "#{s.version}" }

     # ――― Source Code ――――――――――――――――――――――――――― #
     s.source_files  = "APIKit"

     # ――― Project Linking ――――――――――――――――――――――――― #
     s.frameworks = "UIKIt", "CoreLocation"

     # ――― Project Settings ―――――――――――――――――――― #
     s.requires_arc = true

 end

这似乎很奇怪,这在设备上运行得很好,但在模拟器上却没有。任何帮助,将不胜感激。感谢。

0 个答案:

没有答案