symbol(s) not found for architecture i386

If you get this sort of thing appearing suddenly, it usually means the project is missing some frameworks it needs. Libraries and dependent projects can require frameworks, so if you've added one recently then that can cause this error.

To add frameworks, right click on the project name in the project view, select Add, then select Existing frameworks... from the list. Then find the framework with the symbols you're missing.

As to how you find which frameworks you need, I've found using google the easiest, though you could probably use the Xcode help search too. Search for one of the symbols, doing your best to work out the unmangled name (e.g., SCNetworkReachabilityGetFlags), and then the first documentation link you find at developer.apple.com is often the right one. You usually don't have to hunt very far. In this case, that's this page:

https://developer.apple.com/documentation/systemconfiguration/scnetworkreachability-g7d

Then at the top of the page, it tells you which framework to use, SystemConfiguration in this case. So add that to the project, and compile again.

Then just keep doing this until it works...

Edit: I've never used the simulator, but this is what you do on the device - I assume it's the same...


Sometimes there are source files which are missing from your target.

  1. examine which symbols are missing
  2. target->build phases->compile source
  3. add the missing source files if they are not listed
  4. command+b for bliss

You can select the files that seem to be "missing" and check in the right-hand utility bar that their checkboxes are selected for the Target you are building.


You are using ASIHTTPRequest so you need to setup your project. Read the second part here

https://allseeing-i.com/ASIHTTPRequest/Setup-instructions


I solved it using the following method (for XCode 4):

1) Select the project in the project navigation window which will show project summary on right

2) Select 4th tab build phases

3) Select Link binary with library option

4) Add framework for which you are getting

5) Move the framework from main folder to the frameworks folder

6) Build it again and errors are gone.