Am adding QuickBlox to my iOS app and getting a link error for _iconv, _iconv_open &_iconv_close.
I have added all the libraries/frameworks as per QuickBlox's instructions. The only differences I can see is that in their instructions they use the libraries from the iOS 5.0 folder while mine are all in iOS 7.0, and that I have added libxml2.dylib not libxml.dylib (as libxml2.dylib is in that iOS7 folder).
Curiously this occurs only on iPhone simulator builds - building for a device is fine.
Simple enough to fix this by including libiconv.dylib - when I first ran into this problem it was part of a much larger issue caused by xcode always looking for the armvx libs instead of 386 ones for the simulator. Not quite sure why it now only needs that library for the simulator build though.
Have posted this as the answer for anyone glancing here to see if it was answered.
Related
System specification:
Mac-in-cloud (v 12.3.1) 8 GB.
XCODE 13.4
Few months ago we had created a project in xcode on mac-in-cloud. It was working fine and we pushed it on git then rented another mac-in-cloud to test even then project was working fine.
Now a bug come in our app so we rented another mac-in-cloud, pulled code and try to run it but getting this error:
Building for iOS Simulator, but linking in object file built for iOS, file '/Users/user220716/Desktop/Project/[project_name]/platforms/ios/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/GoogleMaps' for architecture arm64
I tried many solutions of similar questions even some same questions like this and this. But problem didn't solved.
Thank you in advance.
The second link in your question should be the same problem you have. The solution is basically add arm64 to Excluded Architecture.
After a hour's search below solution work for me
if Above one not work try this only its work for me
go to finder -> Applications -> xcode (right click on xcode got to get info and check mark the option open using roseeta) again open the XCODE
I have recently made two Frameworks (Extensions & SpotifyAPI), which are targeting iOS 10 just like my project. My phone is running iOS 12 beta (16A5345f). Xcode is running Version 10.0 beta 6 (10L232m).
Here is the project when I target the simulator or my device:
Ignore the warnings, they are expected. The errors are not expected.
For a reason I don't know, the Frameworks don't seem to be recognised when my iPhone is targeted. ALL these errors are functions, variables etc, which are apparently "unresolved identifiers" or "undeclared types" or "has no members" from my Frameworks.
Why does this only work for the simulator, and not my device? Is my Framework not supporting a certain type of architecture?
Here is my hiarachy:
I tried to run it in Xcode 9, but I got this:
So I deleted and reinstalled Xcode 10 but still with no luck.
How can I allow my project to run on my device?
If you have any questions, please ask!
Well this was frustrating... but I know people will come across this problem in the future, so here the answer is. All you need to do is build the Frameworks targeting your iOS device, and then it will work completely fine. Apple, couldn't you make it any clearer?
However, this causes the opposite problem, that the device no longer works in the simulator. π€
EDIT:
I found this Medium post about how to make a universal framework, and got it to work π
With Xcode 6.x we can use CocoaTouch Framework template to build a framework library and Xcode will create the .framework for us when we build, which is awesome. In our framework we want to support iOS 7.1 and up, so for Deployment Target (in our framework) we specified 7.1. Now when we build we see a warning: "Embedded dylibs/frameworks only run on iOS 8 or later". I've since read a number of blog posts on the subject that as far as running it on iOS 7.1 this warning can be ignored because it will run fine (still need to test to make sure). What concerns me is that I read a post on Stack Overflow which says an app may be rejected by Apple in the App Store (see: Xcode 6 and Embedded Frameworks only supported in iOS8)
Does it only apply when in Xcode the app links to it in General > Embedded Libraries?
The way we want our customers to link to our framework is:
Via CocoaPods
By referencing .framework in Build Phase > Link Binary With Libraries
I need to understand under what conditions App Store will reject an app which uses our CocoaTouch framework and supports 7.x iOS.
The app wont be rejected if you'll change the type of your framework to Static. See my answer here.
I believe that as long as the app deals with the framework correctly there shouldn't be any issues. Mixing with cocoapods could be tricky and honestly I don't know the best way to tackle it.
But from what I understand, if an app supports iOS 7.X -> 8.X and uses an embedded cocoa touch framework, as long as the compatibility checks are there to ensure the app doesn't crash in 7.X, there shouldn't be any reason for the app to be rejected.
We tried running the latest code on the following configurations:
iOS 8+ β iPhone 5s
iOS 7.1.2 β iPhone 4
iOS 6.1.3 β iPad 4
The App is working fine on all the three devices but the warning is present in the Xcode while compiling .
"embedded dylibs/frameworks only run on iOS 8 or laterβ
Also I tried to Archive the App in order to submit it to the app store it went on fine.
Also, found out a link where in an apple developer stated this to be a bug:
https://devforums.apple.com/message/999579#999579
I have searched Stack Overflow, Google and fellow peers for a current workaround in Xcode 6 for this error but have failed in doing so.
Note that this error occurs ONLY when attempting to run my app ON A DEVICE USING XCODE 6.
(This is not an issue when using the simulators, and I can build my app on a device using Xcode 5)
It seems to be a framework or library issue, but since it is able to work in almost every other possible way, I am not sure where the solution resides. I was using Xcode 6.0.
Here is the error:
I have checked my architecture settings, my frameworks and project files. Everything that needs to be included seems to be there.
This looks like it might be a silly error to do with Cocos2d and/or Xcode6. I have used SpriteBuilder to create the app. If you have a fix or have this error, any insight would be appreciated, thank you!
Found a fix. Downloaded the new Xcode6 version from the App Store. Xcode 6.0.1 (6A317) and it runs on all devices and simulators.
(There was no notification to update Xcode, you must search for it and download the new version)
I've created a project in Xcode 5.0 (yes, Developer Preview) for the beta iOS7 software because I wanted to play around with the new beta stuff. But I actually decided to submit the App I was playing around with to the App Store and since this is not possible with preview Xcode versions I fixed all compatibility issues to make the code work with Xcode 4.6.3 and iOS 6. Except for one thing.
And that's importing third party frameworks like Flurry (analytics framework) or Crashlytics (crash reporting framework).
Both are correctly imported and set up with targets (it's all working in Xcode 5.0) but I'm getting a 'Crashlytics/Crashlytics.h' file not found in the line I'm importing the needed classes (#import <Crashlytics/Crashlytics.h>) in Xcode 4.6.
The same is true for the Flurry framework analogously. The crazy thing is, both libraries show up in the targets 'Link Binary With Libraries' list, even in Xcode 4.6.
Does anyone have an idea how I can get things work in Xcode 4.6? Are there any further ways to influence the importing?
The link binary with libraries is not the issue here. You have to confirm your Header Search Paths in your build settings. I think Xcode 5 might use a different variable for it, and that is why Xcode 4.6 will get confused (just a guess though). Anyway, confirm that the path to those headers is in your Header Search Path. The Crashlytics app will automatically add it for you, actually.