2013-09-30 41 views
19

我最近將我的開發MacBook從經典MacBook(32位)切換爲MacBook Air(64位)。我正在嘗試打開一個項目,該項目是運行XCode 4的舊式MacBook(32位)上製作的。鏈接針對爲MacOSX文件構建的dylib'/usr/lib/libSystem.B.dylib'針對體系結構i386

該項目是PhoneGap 1.7.0中的PhoneGap應用程序。

我的新的MacBook Air(64位)正在運行的XCode 5

我進口從我的舊的MacBook我的開發人員配置文件到我的新的MacBook Air。但是當我嘗試運行它時,我收到以下錯誤消息。

enter image description here

enter image description here

我試圖改變我的構建設置架構的ARMv7但仍沒有運氣:(

有誰知道爲什麼我收到此錯誤,以及如何修復它?

謝謝

+0

您需要重新建立一個dylib爲目標的iOS設備和仿真器。 –

+0

我該怎麼做? –

+0

找到構建dylib的原始項目併爲其創建iOS目標。 –

回答

26

行,所以事實證明,5的XCode更改默認架構ARMv7的時候我的應用程序不支持的ARMv7。我正在運行Cordova 1.7.0,該版本不支持armv7架構。

修復架構問題:

  1. 刪除ALL架構從Build Settings - > Valid Architecture
  2. 新增armv6Build Settings - >Valid Architecture enter image description here


修復libSystem.B.dylib問題:

  • 移除/usr/lib/libSystem.B.dylibBuild Settings - >Linking - >Linking - - >Other Linker Flags>Other Linker Flags

  • 另外,從Build Settings除去-weak_library enter image description here

  • +1

    在我的情況下,我想將xcode 4.5中製作的項目運行到xcode 5.0中。所以這個錯誤發生在每個項目中。所以我刪除了'其他鏈接器標誌'的所有鏈接器標誌,它的工作原理。 –

    +1

    非常感謝隊友對這個....正是我的問題......和excatly我需要:) – Abolfoooud

    +0

    2周尋找解決的辦法後的解決方案,這是它! – AddisDev

    1

    Xcode 5要求您建立模擬器庫(1)和iOS(2)。然後,您可以將這些(3)合併爲一個胖主幹,然後將其鏈接到主項目。我使用與Xcode用於構建主項目相同的標誌(如在screendump中所見)。

    共同GNU工具鏈變量表達我做的:

    1.建立一個庫模擬器

    CC=clang 
    IPHONEOS_DEPLOYMENT_TARGET=7.0 
    PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH" 
    CFLAGS="-arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -mios-simulator-version-min=7.0" 
    

    2.建立一個庫的iOS

    CC=clang 
    IPHONEOS_DEPLOYMENT_TARGET=7.0 
    PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH" 
    CFLAGS="-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -miphoneos-version-min=7.0" 
    

    3.合併到一個胖二進制文件

    選擇這兩種.a.dylib取決於你用什麼:

    lipo -create "your armv7 lib".a  "your simulator lib".a  -output "your lib".a 
    lipo -create "your armv7 lib".dylib "your simulator lib".dylib -output "your lib".dylib 
    
    +0

    我會在哪裏輸入這些?它在碼頭嗎?另外,對於第3步,我可以調用這些庫嗎?什麼將取代佔位符文本? –

    相關問題