0

As a result symbols aren't being loaded and I cannot use Parse, trying to insert #import gives file not found error. I've followed the quickstart guide on the Parse site for an existing project and have added all the libraries required (e.g. AudioToolbox Framework, etc) so that's not the issue.

The exact warning I get is:

ld: warning: ignoring file /Users/XXXXXXX/Documents/YYYYYYYY/Parse.framework/Parse, file was built for unsupported file format ( 0x56 0x65 0x72 0x73 0x69 0x6F 0x6E 0x73 0x2F 0x43 0x75 0x72 0x72 0x65 0x6E 0x74 ) which is not the architecture being linked (i386): /Users/XXXXXXX/Documents/YYYYYYYY/Parse.framework/Parse

The project was created in Xcode 5.02 and is targeting ios 6.1, let me know if any further information is required. I downloaded the Parse starter project and that builds fine, but that seems to have some custom architecture set, so maybe there's a build setting I could try changing in my project?

Adam Knights
  • 2,141
  • 1
  • 25
  • 48

5 Answers5

11

I know this is old, but I just ran into the same issue. The hex numbers can be replaced with ASCII characters. In my case I had these hex numbers: 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x20 0x68 0x74 0x74 0x70 0x73 0x3A 0x2F 0x2F

Translated into ASCII, it says version https://. I did a recursive grep (grep -r "version http://" ./) on the string and in a single framework the main file contained that string.

It appeared a colleague used Git Large File Storage to store a huge SDK file on Git, and he 'forgot' to mention it to me... A few hours wasted but finally solved.

ar34z
  • 2,609
  • 2
  • 24
  • 37
  • So what did you do to fix this? – johnny Feb 28 '20 at 22:12
  • If I remember well, I had to install the large file storage extension for GitHub and it worked again. – ar34z Feb 29 '20 at 07:52
  • Just in case anyone else has this issue with a framework installed via cocoapods, the solution for me was to install git-lfs, clear the cocoapods cache, remove pods directory from my project & then re-run `pod install` – Andy Dec 14 '20 at 15:28
  • Could you please provide the screenshot – Sham Dhiman Feb 06 '22 at 07:51
  • 1
    You can install Git Large File Storage via brew: brew install git-lfs Then check installation: git lfs install after that go to your git repository and execute: git lfs pull – JulianKro Jan 13 '23 at 09:42
2

I ran the command

xcrun -sdk iphoneos lipo -info Parse

and got

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: can't figure out the architecture type of: Parse

So it looks like adding the framework somehow corrupted itself, or an xcode 5 bug. I removed the framework and re-added it and it's now working and the above command gives

Architectures in the fat file: Parse are: armv7 armv7s i386 arm64 x86_64

Adam Knights
  • 2,141
  • 1
  • 25
  • 48
  • Mark yourself as the correct answer for others who may come across a similar problem – Phil Wilson Dec 07 '13 at 22:40
  • it could also be transferring a file to a system that doesn't understand symlinks.. see this example: http://stackoverflow.com/a/15246798/766570 – abbood Apr 25 '14 at 10:41
  • 2
    I had the same issue with another framework. Executing "xcrun -sdk iphoneos lipo -info " also get me "can't figure out the architecture type of:". I think there's a problem with git-lsf while cloning the framework. I had to manually download the corrupted file on git and replace it. Then Worked like a charm – Matt Aug 29 '19 at 10:26
  • Mine was a similar problem in that the framework was corrupted. But mine was due to a large framework being pulled over git. Redoing and fixing my `git-lfs` implementation and then re-cloning fixed my issue. 1. Make sure you have homebrew installed. If you don't, install it with `/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"` (http://brew.sh/) 2. `brew install git-lfs` REINSTALL if already installed. 3. `git lfs install` 4. `git lfs install --system` – Christopher Sep 09 '20 at 16:56
2

"Parse.framework/Parse" is a link. And the complier can not use it.Replace all the links with real file and it works fine.

2

One cause for this on MacOS is having GNU Binutils (like ar and ranlib) on your PATH. Run ar --version and ranlib --version. They should NOT say anything about GNU.

If you installed them using Brew try brew unlink binutils and then do a full clean and rebuild.

Timmmm
  • 88,195
  • 71
  • 364
  • 509
1

I know this an old post but I had the same issue recently whilst binding an iOS framework.

file was built for unsupported file format ( 0x56 0x65 0x72 0x73 0x69 0x6F 0x6E 0x73 0x2F 0x43 0x75 0x72 0x72 0x65 0x6E 0x74 ) which is not the architecture being linked (arm64): ...

This was caused by the Mac Alias links within the iOS Framework structure being corrupted, either merging the code in VSTS (git) or opening these files in Windows. It essentially changes them to simple as text files. You can easily verify this by clicking on these files that should be aliases and the routing doesn't work.

Note: this was on a done Mac originally but some of the team were using Windows. However, this seemed to be more prevalent when git was merged.

The problem here is the Xamarin binding project builds and it is not until you try to use DLL in an app or test harness that it produces the warning and errors. Re-instating the Mac Alias manually or getting the original framework fixes the issue.

Kodejack
  • 441
  • 4
  • 7