crash not - 設備上的iOS應用程序崩潰,dyld:Library未加載,Xcode 6 Beta





loaded (16)


  1. 轉到xcode中的文件 - >工作區設置
  2. 單擊出現/ Users / apple / Library / Developer / Xcode / DerivedData旁邊的箭頭
  3. 選擇派生數據並將其移至廢紙簍。
  4. 很好的Xcode並重新打開它。
  5. 清理項目並再次運行。

上述步驟解決了我的問題。

這次崩潰是一個阻塞問題,基本上我使用以下步驟來重現問題:

  • 創建一個Cocoa Touch框架項目
  • 添加一個swift文件和一個類Dog
  • 為設備構建框架
  • 在Swift中創建一個單一視圖應用程序
  • 將框架導入應用程序項目
  • 在ViewController框架中實例化swift類
  • 在設備上構建並運行應用程序

該應用立即崩潰啟動時,這裡是控制台日誌:

dyld: Library not loaded: @rpath/FrameworkTest03.framework/FrameworkTest03
  Referenced from: /var/mobile/Applications/FA6BAAC8-1AAD-49B4-8326-F30F66458CB6/FrameworkTest03App.app/FrameworkTest03App
  Reason: image not found

我試圖在iOS 7.1和8.0設備上構建,它們都具有相同的崩潰。 不過,我可以構建應用程序並在模擬器上運行。 另外我知道我可以將框架從“ 必需”更改為“ 可選” ,但它並未完全解決問題,應用程序在創建Dog實例時崩潰。 在設備和模擬器上的行為是不同的,我懷疑我們不能使用Xcode的beta版本為設備分發框架。 任何人都可以闡明這一點嗎?







我在iOS 9.x版本中遇到了同樣的問題

ISSUE IS: App crashes as soon as I open the app with below error.

dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserNotifications Referenced from: /var/containers/Bundle/Application/######/TestApp.app/TestApp Reason: image not found

我通過將Linked Frameworks and Libraries for UserNotifications.framework框架中的Required更改為Optional來解決了此問題。




如果有開發pod從模擬器安裝從pod刪除你的應用程序 - >清理 - >再次運行...




在嵌入式二進製文件中添加該框架

然後清理並建立。




對於那些修復程序無法正常工作的人,請嘗試將操作系統更新到Yosemite。 它為我工作!




我使用Swift3 / Xcode 8.1創建了一個框架,並在Objective-C / Xcode 8.1項目中使用它。 要解決這個問題,我必須在Build Options下啟用Always Embed Swift Standard Libraries Build Options

看看這個截圖:

希望有所幫助!




在目標的常規選項卡中,有一個嵌入式二進製文件字段。 當您添加框架時,崩潰已解決。

參考here在Apple開發者論壇。




如果您使用的是第三方框架,並使用Cocoapods作為依賴關係管理器,請嘗試執行pod install來刷新您的pod。

這個崩潰發生在我正在使用的第三方庫上,所以很高興上面的解決方案為我工作,希望它適合你!




我嘗試將我創建的框架手動添加到我的項目中時收到了同樣的錯誤。 只是將框架拖入您的項目並不夠好。 這就像是在同一個球場,但無法找到你的孩子。 我花了一些嘗試和錯誤才使它正常工作,但按照這些步驟為我做了。

1)創建你的框架

  • 開發你的框架。
  • 一旦你的開發完成, COMMAND + B構建你的框架並確保你獲得“構建成功”。

2)訪問你的框架

  • 一旦你的框架項目成功建立,它就會準備好讓你訪問你的項目中的Products文件夾。

  • 右鍵單擊您的.framework並選擇“在Finder中顯示”。

3)將框架放置在您的項目中

  • .framework從Finder窗口拖放到應用程序項目的“Framework”文件夾中。

4)為框架配置應用程序項目

  • 在您的項目中選擇最高級別

  • 選擇你的目標

  • 轉到“構建階段”,然後“與庫鏈接二進製文件”,並確保您的框架包含在可選的選項中

  • 仍然在“構建階段”中,轉到左上角並選擇+按鈕。 在下拉菜單中選擇“新建複製文件階段”。

  • 向下滾動到新的“複製文件”部分,並確保您將Destination設置為“框架”。 保持子路徑為空。 然後點擊左下角的+按鈕。

  • 您將看到您的項目層次結構。 向下滾動到您在步驟3中添加框架的“框架”文件夾,或者在頂部的搜索欄中搜索它。 選擇你的框架,然後點擊“添加”。

  • 確保您的框架包含在“代碼簽名複製”中。

5)清理,然後運行你的項目

  • COMMAND + SHIFT + K
  • COMMAND + R



在我的情況下,解決方案是從嵌入式二進製文件中刪除編譯後的框架,這是工作區中的一個獨立項目,清理並重建它,最後重新添加到嵌入式二進製文件中。




我的環境:Cocos2d 2.0,Box2d,Objective C

除了做上面的其他答案,我終於去了常規選項卡,並使WatchKit可選。




令人驚訝的是,並非所有必要的部分都在這裡記錄,至少對於Xcode 8來說。

我的情況是一個定制的框架作為同一工作區的一部分。 原來它正在被錯誤地構建。 根據傑里米胡對此主題的最後回應:

https://forums.developer.apple.com/thread/4687

我必須在框架的 Build Settings下設置Dynamic Library Install Name BaseDYLIB_INSTALL_NAME_BASE ),然後重新Build Settings它。 它被錯誤地設置為$(LOCAL_LIBRARY_DIR) ,我必須將其更改為@rpath

因此,在鏈接處理階段,它指示主機應用程序在運行時從/Library/Frameworks/fw.Framework/fw (如文件系統的根目錄)動態加載它,而不是路徑到應用程序 /Frameworks/fw.Framework/fw

關於所有其他設置:它必須位於Build Phases 3個位置,但只需將它們添加到託管應用的General選項卡的Embedded Binaries設置中即可。

不必設置額外的“ Copy Files階段,無論如何,這在嵌入階段看起來直覺上是多餘的。 通過檢查構建記錄的尾部,我們可以確保沒有必要。

PBXCp /Users/xyz/Library/Developer/Xcode/DerivedData/MyApp-cbcnqafhywqkjufwsvbzckecmjjs/Build/Products/Debug-iphoneos/MyFramework.framework

[刪除了許多冗長的內容,但Xcode UI中簡化的腳本很明顯。]

我仍然知道為什麼Xcode在我身上錯誤地設置了DYLIB_INSTALL_NAME_BASE值。







我必須(在此處提到的之上) 將以下行添加到 生成設置”選項卡下的 Runpath搜索路徑 ”中
@executable_path/Frameworks




我從pressanswer.com得到了這個答案,我認為它可以幫助你。

由於目前我無法使用“位置”keypath進行動畫製作,因此我最終使用“緯度”和“經度”關鍵路徑分別進行動畫處理。

首先計算點並將它們添加到2個單獨的數組中,一個用於緯度值(y)和一個用於經度(x),然後使用CAKeyFrameAnimation中的values屬性進行動畫處理。 創建2個CAKeyFrameAnimation對象(每個軸1個)並使用CAAnimationGroup將它們組合在一起並將它們一起動畫以形成一個圓。

在我的等式中,我改變每個軸上半徑的長度,這樣我也可以生成一條橢圓路徑。

NSMutableArray *latitudes = [NSMutableArray arrayWithCapacity:21];
    NSMutableArray *longitudes = [NSMutableArray arrayWithCapacity:21];
    for (int i = 0; i <= 20; i++) {
        CGFloat radians = (float)i * ((2.0f * M_PI) / 20.0f);

        // Calculate the x,y coordinate using the angle
        CGFloat x = hDist * cosf(radians);
        CGFloat y = vDist * sinf(radians);

        // Calculate the real lat and lon using the
        // current lat and lon as center points.
        y = marker.position.latitude + y;
        x = marker.position.longitude + x;


        [longitudes addObject:[NSNumber numberWithFloat:x]];
        [latitudes addObject:[NSNumber numberWithFloat:y]];
    }

    CAKeyframeAnimation *horizontalAnimation = [CAKeyframeAnimation animationWithKeyPath:@"longitude"];
    horizontalAnimation.values = longitudes;
    horizontalAnimation.duration = duration;

    CAKeyframeAnimation *verticleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"latitude"];
    verticleAnimation.values = latitudes;
    verticleAnimation.duration = duration;

    CAAnimationGroup *group = [[CAAnimationGroup alloc] init];
    group.animations = @[horizontalAnimation, verticleAnimation];
    group.duration = duration;
    group.repeatCount = HUGE_VALF;
    [marker.layer addAnimation:group forKey:[NSString stringWithFormat:@"circular-%@",marker.description]];






ios crash swift xcode6