18

I am trying to build this xcode workspace which was built from Unity. And after modifying the project a little bit when I getting to the very end of building the project (linking) I get the Apple Mach -O Linker (Id) Error. I can't open the error tab to see what exactly is causing the error. All it says is "Linker command failed with exit code 1 (use -v to see invocation). There are also two Apple Mach -O Linker (Id) Errors which occur but I have no idea how to solve them.

Any help is greatly appreciated!

I can't expand these tabs.. this is all I get told This is the warning tab expanded, the two Apple Mach -O Linker (Id) warnings are the same

Brett A
  • 183
  • 1
  • 1
  • 5
  • 1
    "I can't open the error tab to see what exactly is causing the error." >> Maybe you can try clicking the right button over the error and then something like 'Show error in..'. If you can go there, it will be helpful post the cause of the error, in order to understand why the linker process failed. – mayo Jul 11 '17 at 06:41

12 Answers12

18

This problem has different solutions , one of them is to set Enable Bitcode to No . ( I don't know why by default it is Yes )

enter image description here

This problem is a ghost like problem . Clearing Cache , Restarting Xcode , Simulator and MAC ,Ensuring proper linking of Frameworks ,Changing app Architecture or , Sometimes just doing nothing can solve this problem .

roy
  • 6,685
  • 3
  • 26
  • 39
  • 2
    Though not related with unity, the error message I faced was the same, using ionic and I ended up here. For me the problem was caused with an updated version of cordova. Removing the platform and adding it again using a downgraded version of cordova solved the problem for me. Downgraded from 4.5.0 to 4.4.0. source: https://github.com/ionic-team/ionic/issues/12849 – rpbaltazar Mar 13 '18 at 14:48
  • one of my case i face same problem , and solved by downgrading version in podfile , thanks for sharing – roy Mar 13 '18 at 15:06
  • Just to add yet another finding, I believe the root cause of my problem was indeed the upgrade to the 4.5 version: https://github.com/ionic-team/ionic/issues/12942#issuecomment-330893145 – rpbaltazar Mar 14 '18 at 04:07
7

This issue was connected to "Link Binary With Libraries". I've renamed the target, and there were two .framework files for the Pods. Thus, after removing the outdated one - the issue was solved. enter image description here

Naloiko Eugene
  • 2,453
  • 1
  • 28
  • 18
5

For me the scenario was that I removed one of the dependency in my pods which was not required, after removing it I was getting error that the same dependency not found. So I went to delete its entry from the Project >> Build Settings >> other Linker Flags and then selected the same and deleted it as shown below in the Image. After removing from the linker Flags I started getting the Apple Mach -O Linker (Id) Error? and after trying everything for a day I realised the issue lies inside the linker Flags. Where on deleting any dependecy you have to delete the other line name -framework. you can check the below image to get the clarity. Apple Mach -O Linker (Id) Error?

So I suggest to keep an eye on it while deleting the dependecy from the linker flags, do delete the associated -framework too which lies below the dependency name. In my case it was ObjectMapper

Yaseen Majeed
  • 350
  • 2
  • 11
4

If you just installed/ uninstalled a pod you might want to look at this. Here's what worked for me:

  1. First make sure you are opening the .xcworkspace file not the .xcodeproj. But this is probable not what's causing the issue.

  2. Delete the pod that was recently just installed.

  3. In the project directory on Xcode, open the frameworks folder and if the pod which was just removed is still listed there as one recentlyremovedpod.framework, delete it from there also. This step is what made my project compile eventually.

Loup G
  • 169
  • 1
  • 11
  • How about I have to use the pod? Because have to use the OneSignal to push notification. Could you help me answer my question:https://stackoverflow.com/questions/46231264/ionic3-apple-mach-o-linker-id-error – Yuyang He Sep 15 '17 at 03:56
  • 1
    @YuyangHe if you want to use the recently deleted pod, Reinstall it and it should work normally. – Loup G Aug 20 '18 at 19:24
2

Another possible cause is if you rename one of your targets (why did I do that?) and you're using pods. You end up with a version of your old target name in the Frameworks folder in your main project (not the Pods project), like pods_oldtarget_framework which no longer exists.

Just delete the old version (or name your target back to it's original and delete the new one), and you should be good to go.

Mick Byrne
  • 14,394
  • 16
  • 76
  • 91
  • How about I have to use the pod? Because have to use the OneSignal to push notification. Could you help me answer my question:https://stackoverflow.com/questions/46231264/ionic3-apple-mach-o-linker-id-error – Yuyang He Sep 15 '17 at 03:57
1

For me it was missing frameworks. Try searching the errors you get on Google and find out which frameworks they're part of, then import them in the Build phases tab.

Lukebox
  • 11
  • 1
0

I was having the same issue, and resolved by

  1. installing the latest CocoaPods
  2. then do pod setup
Peter Ye
  • 53
  • 6
0

For me I had the problem because I was using Xcode 9 (beta), then I open the same project with another Xcode 8.3. To solve the problem for me just Clean then Run again.

enter image description here

Ken Ratanachai S.
  • 3,307
  • 34
  • 43
  • The issue appears when Building so the cleaning phase have already been done correctly. By cleaning again this is not gonna change anything – Soufiane ROCHDI Aug 26 '18 at 18:44
0

If building on mac for ios in unity, make sure that in the build settings you disable "Metal Editor Support" under other settings for the ios platform.

0

I used xcode 9.3 and I got this same error. But with 9.2 it works. The error may happen because of incompatibilities between the artifacts produced by the two xcodes. The project that threw the error included a framework built with xcode 9.2

Alex Ilie
  • 33
  • 5
0

I added libstdc++.tbd to "BuildPhases >> Link Binary With Libraries". It works for me.

adenizc
  • 411
  • 3
  • 8
0

How I resolved this issue:

  1. I exit Xcode then opened my project's .xcworkspace again.

  2. While Xcode was starting...i saw warnings...xcode is smarter enough and ask you switch to recommended settings...Tap it and let him do the changes. (Read warning seriously and with positive mind and then you will resolve it)

Clean Coder
  • 496
  • 5
  • 12