I have an iPad app, XCode 4.6.2, Storyboards, iOS 6.0 and ARC. The app runs fine, now I'm trying to localize it, starting with the Storyboards using Base Localization. This is what I see when I go to Proj Info:
When I click on Use Base Internationalization, this is what I get:
Notice that there is NO resource file or reference language to select! Why? and how do I fix this? I have searched SO, Google and found nothing.
UPDATE I don't want to delete this, but the answer is: Base Localization is NOT supported under iOS... bummer!
Related
I thought I understood what Always Embed Swift Standard Libraries was doing, but now i'm confused.
I pushed an update to a MacOS app to the App Store and a user said it was crashing for him on macOS High Sierra. After a very quick investigation, it seems the swift libraries were missing and one of my frameworks was written in swift (Main app was ObjC). I switched Always Embed Swift Standard Libraries to YES, re-uploaded a new build and everything was great with the world.
I have now uploaded a brand new iOS app to Testflight that is build for iOS 9.3+ and remembered about this issue so thought i'd test it out.
The Always Embed Swift Standard Libraries setting is set to NO which must have been the Xcode default. I downloaded the app through TestFlight on an iOS 9.3.2 device expecting it to crash on launch, but no, the app works perfectly fine.
How can a macOS app crash running on 1 major version behind of macOS but an iOS app can run perfectly fine on iOS that's 4 major versions behind?
Am I completely misunderstanding what this setting does?
When should we use Always Embed Swift Standard Libraries?
----- EDIT
I've just checked the .app contents and it seems it does have the swift libraries in it, which would explain why t didn't crash on iOS 9.3.2. So an additional question. Why would the swift libraries be there when Always Embed Swift Standard Libraries is set to NO?
I had to read the documentation several times, to get a clue what's going on:
Always Embed Swift Standard Libraries (ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES)
Always embed the Swift standard libraries in the target's products, even if the target does not contain any Swift code.
This means
if you set ALWAYS... to YES, the libraries will definitely be embedded.
if you set it to NO, they will not always be embedded - they might or might not be embedded, regarding of how clever the build system is able to decide that it needs them or nor (depending on the target version or so).
This is a common misinterpretation: The negation of always is not never, it is just not always (e.g. sometimes or so).
So I just installed Xcode 6.4 to start some development on my new Mac, and after creating an empty iOS project, I see the message "No OS X or iOS Targets Found". I also see a message under my project folder: "base SDK missing. But I was under the impression a normal install of Xcode also installs all basic SDKs required for Mac and iOS development?
It seems there is absolutely no information on this message on the web. I think it is not an error per-se, more like I need to create or import some build targets, but can anyone explain what I need to do to get my project built and running?
I also need to use XCode with Cordova (or PhoneGap), but there does not seem to be any clear information on how to get XCode properly set up for that. Any pointers for this would be appreciated.
I haven't created an empty project in a long time so can't really comment on the empty project. But to make your life MUCH simpler, I would use one of the default templates and go from there. The simplest is probably the "Single View application".
Admittedly, this does not solve the issue, but it will get you going (which I assume is really what you want to do).
Go to the Project menu, then Edit Project Settings. Select the Build tab, and near the top, there is a Base SDK setting.
Choose the latest iOS.
You might need to clean the project or restart Xcode.
on SO there are links which describe importing the iOS6.1 SDK from Xcode 4 into Xcode 5. What I additionally want is having the DocSet for iOS6.1 also along with Xcode 5.
I already made a copy from
/Applications/Xcode-4.6.3.app/Contents/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiOS6.1.iOSLibrary.docset
to
/Applications/Xcode.app/Contents/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiOS6.1.iOSLibrary.docset
but it doesn't get listed on Xcode 5's download preferences window.
Any ideas?
Background of my request (to prevent questions/comments like "Why do you want to use the old SDK and documentation, hey?"):
I'm still deploying my AppStore apps with iOS6.1 SDK, because I'm not happy with iOS7. Otherwise I need working with Xcode 5 for other reasons and I want to prevent using both Xcode versions 4 and 5 on my machine.
Thanks,
Konran
There is no way other than to use Dash, it works with old documentation and others: http://kapeli.com/dash
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.
basically it happens at the line like #import and every other ios header, like UIAccelerometer is unavailable and even UIView is unavailable, the compile stopped at the line #import. what could cause that?
I just had this issue trying to build for iOS 5.1 in XCode 4.5 after manually installing the iOS 5.1 SDK out of XCode 4.4.
After some initial frustration, this solved the issue:
Xcode 4.5 and iOS 4.2.1 incompatibility
Find your .xcodeproj, do "Show Package Contents" to expose your .pbproj and open it in a plaintext editor ( or Komodo Edit, maybe TextEdit if you have it setup to use plain text by default). Find every instance "IPHONEOS_DEPLOYMENT_TARGET" and make sure it says "IPHONEOS_DEPLOYMENT_TARGET = 4.0;"
Having the SDK 5.1 installed alone isn't enough, as I have discovered. Nor is changing the Deployment Target field under "Info". I had to manually edit the .pbxproj
Either you are building for MacOSX by accident, or you need to add the frameworks you are importing form iOS into your project.
faced similar compiling issues with xcode 5 using base sdk 6.3 - turned out to be several xib had a value of "opens in Default(5.0)". Setting the value to "opens in XCode 4.6" fixed it