Duplicate symbols for facebbok library i386 architecture - facebook

I try updating Phonegap application to 2.9 with updating facebook sdk to recent version.
I've completed update guide and re-attached Facebook SDK. Could find an answer that would help in other stackoverflow issues.
I'm getting error
ld: 41 duplicate symbols for architecture i386
What I have tried so far:
Removed Facebook SDK from Buid Phases: this leads to facebook classes not found. Reverted.
Verified plugin is in 'ios' subgroup
Verified frameworks are attached
Config screenshots: 1 2 3
What am I missing?

Which version of Facebook iOS sdk are you using? If it is 3.5, try downgrading to 3.2 and see if that works. Phonegap Facebook plugin is a bit outdated and seems to have issues with the latest ios sdk.

Related

not found library for -lGoogleUtilities-library

I have been building an iOS app with Google AdMob with CocoaPods. Now, I am stuck with the error, "not found library for -lGoogleUtilities-library", for a while. Some people have answered this question before (Xcode and Unity missing library 'lGoogleUtilities'), which a developer should open the .xcodeworkspace file instead of the .xcodeproject file. I know a lot of people solved their issues in this way, but this error still appears in my .xcodeworkspace file.
Supplemental info:
Swift 4.2
Xcode 10.15.10
Screenshots:
Error Message
My Link Binary With Libraries
My Frameworks, Libraries, and Embedded Content
The iOS version in my Podfile and it on project were different. I solved this by matching the iOS version in those. Then the error went away.

Upgrade phonegap from 1.5 to 2.7 for iOS app

I have created an app for iPhone in phonegap.
In starting I used phonegap 1.5 and submitted this app to app store.
But now I upgrade my app and try to submit to app store.
Now it is showing error related to Unique Identifier.
To resolve it I have to upgrade phonegap from 1.5 to 2.7.
I checked link
But here upgrade guides are available particular version to version.
Go one by one through the upgrade guides until you get to the version that you want.
I had same problem but, with android.
My colleague checked all the stages provided here.
She reviewed all steps and found that there are minor differences in stages.
So here is how we upgraded from 1.5 to 2.6 for android.
I suggest you to review the stages for iOS and find out minor differences.
Instead of going stage by stage, check if there are common steps and follow them directly from 1.5 to 2.7

Framework issues in Xcode

I'm running the latest version of Xcode and am try to create an app for IPhone with IAd integrated into it and I have tried to integrate it many ways, but I keep receiving this error every time, ld: warning: ignoring file /Users/mini/Desktop/TheDateGetter/iAd.framework/iAd, file was built for unsupported file format which is not the architecture being linked (i386) I'm guessing this is a framework issue, because all of the code and everything else it correct. All help will be appreciated, thanks!
Check under Build Phases for your target which frameworks are you linking against. You will need to remove then the iAd framework from /Users/mini/Desktop/TheDateGetter and link the correct one from the iOS SDK.

Linker error (only simulator) with own library after update to iPhone SDK 4.0

I recently updated to iPhone SDK 4.0 and are no longer able to build my project for the iPhone simulator. The problem is that classes of one of my own libraries can no longer be found by ld:
"_OBJC_CLASS_$_Book", referenced from:
objc-class-ref-to-Book in Category.o
(maybe you meant: ...)
ld: symbol(s) not found
collect2: ld returned 1 exit status
I already read some other posts about similar problems, like e.g. here. "Unfortunately", my problem has nothing to do with a SDK framework, but with my own lib, so the solutions mentioned there are not applicable here.
The library is included under "Link Binary With Libraries" of my target, library search paths are correct (checked this with XCode and with a plain text editor directly in my project file) and correctly added to the gcc command.
I'm using iPhone Simulator 3.2 as Base SDK, but the same problem occurs with SDK 4.0. Again, this works with my device target but not with my simulator target. It worked with both, though, before I updated from iPhone SDK 3.2 to 4.0. I was also able to reproduce this error by creating a new project with only one file and the linked lib. However, the lib should be okay as it worked with simulator 3.2 before I updated XCode and my SDK.
More Facts: Mac OS X 10.6.3, XCode 3.2.3 64-Bit, iPhone OS 3.2, GCC 4.2
Any help would be highly appreciated.
EDIT:
After reinstalling SDK 3.2, everything worked as expected again. It must be noted, that the SDKs in folder /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs are overwritten with each installation. I then tried to reinstall SDK 4.0 again and the same error as above occurred. I didn't change anything in my project and always used 3.2 as Base SDK.
The problem can therefore possibly be narrowed down to the following options:
Apple changed sth. in the Simulator SDK 3.2 that causes the problem
a change in XCode 3.2.3 causes the problem
wrong/missing compiler flags while building my own library (those flags, however, would only cause problems with a changed SDK or the changed IDE)
I also did a folder diff on /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk for both the old and the new version of this folder. It turned out that there are actually minor changes within the "same" SDK. I still think it's an IDE/compiler flag problem, though.
Anybody any ideas? I don't want to stick to 3.2 forever...
Make sure that you recompile your libraries with the same base SDK as you're using for your app.
I was finally able to figure out which flags were missing in my compiler call to build my lib. So, to answer my question: If anybody has problems linking his/her own static lib to a target in XCode 3.2.3 (using iPhoneSimulator3.2.sdk or iPhoneSimulator4.0.sdk), you need to build your lib with the following two flags:
-fobjc-abi-version=2
-fobjc-legacy-dispatch
Thanks again to PhoneyDeveloper for his hints.
Another thought- this has happened to me in the past even when libraries weren't involved.
Double check that you haven't imported files using the 'group folder references' option. It seems that this gives Xcode a headache. (At least it did in my case.)
i got solved this when i removed flags like (-ObjC, -all_load) under 'Other Linker Flags' which I was using in the project.there was -all_load conflict actually.

iTunes Connect rejects my binary because I used a pre-release version of the SDK, what should I do?

I downloaded a pre-release version of the iPhone SDK and tried to update one of my existing apps using a binary I built with it. Obviously you are not supposed to do this but I had forgotten about the warning when I installed the pre-release SDK. Anyway - I have two questions:
Can I simply set the base SDK to an earlier version in the build settings and get around this problem?
If not, then what should I do?
You need to download the release version of Xcode with the release iPhone SDK. You can't use the SDK downloaded from the iPad beta version for any release products.
Just go to http://developer.apple.com/iphone/index.action and click on iPhone SDK 3.1 and download it. Then build your app bundle with that and submit it to Apple.
Before you download a pre-release version of the SDK from developer.apple.com, there are several prominent warnings, one of which clearly states that pre-release versions of Xcode / iPhone SDK can NOT be used to build production binaries. So the answer to 1. is an emphatic no.
As far as I can tell, the only option to be able to build production binaries that iTunes Connect will accept is to delete the pre-release version of Xcode / iPhone SDK and re-install the older stable version.
If you upgraded using the beta download (as opposed to installing on a fresh box that has never seen SDK or Xcode), set the base SDK to a released version of the OS. Compile a Distribution build, submit to the app store. The old SDK is still there, so that will get used. All of the prominent warnings I have seen state the the SDK cannot be used, without mention of Xcode.
Before anyone scoffs, note that I submitted an app on March 13 using the version of Xcode (3.2.2) included in Beta 4, setting Base SDK to 3.1. It was approved on the 15th. I've also done this during the 3.0 beta for 2.x apps.
EDIT: on the other hand, acceptance apparently isn't always guaranteed (note that this person had also submitted an app that did get accepted): The binary you uploaded was invalid. A pre-release beta version of the SDK was used to build the application