xcode 5 corrupts settings bundle localization? - ios

I have an xcode 4.x project which has a localized settings bundle. Localization works
I open and compile it in xcode 5 and the localization still works.
I begin to edit settings bundle in xcode 5 and the localization fails. It means I have the same structure I need in settings bundle, but with incorrect titles.

Related

Xcode 11 - Removing localization

I am trying to remove languages that are not supported in our app. In the project file in the info tab, I have removed all the languages under the Localizations.
Then I build the app and launch on my iPhone that is on iOS 13. In the System Settings, I find my app name and I can see Languages. When I click on it I can see the languages that are not supported anymore. Is there any other place I should remove something in order not to see those languages?
I found that erasing the simulator device and deleting the .lproj subdirectory wasn't enough, the deleted language was still showing up in the app settings. But restarting Xcode and cleaning the build folder seemed to do the trick.

Xcode 7: WatchOS storyboards do not support target device type 'iphone'

I have imported an Xcode 6 project in Xcode 7 beta 5 with a Watch target and I get the following message:
WatchOS storyboards do not support target device type 'iPhone'
I clicked on the storyboard and removed it from the App target (left only the watch app target instead). However it still doesn't work.
How can I get this to work?
Update to recommended settings
Select your watch app storyboard
Uncheck the the first check box (your main app) and this will allow you to run your app without the error.
NOTE: This will result in no assets loaded. Go into your asset catalogue select the images one by one. In the inspector you will have a list of check boxes. Check watchOS and add the images to "Apple Watch" in the asset catalogue. The assets will now load as expected
You can support both Watch OS1 and 2 and there is a good answer here Xcode 7 supporting watch OS1 and OS2
Modify Targeted Devices Family
The issue has not appeared on Xcode 6. For Xcode 7, my solution is to modify file project.pbxproj.
Open file PROJECT.xcodeproj in your project folder
Open file project.pbxproj
Modify value of TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*] to "4" in section Watchkitapp. "4" means for Watch only and "1" is for iPhone.
p.s. Originally the value TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*] might by "1,4". Therefore we got this error.

How to determine which xcode was used to develop from code

I have iOS app source code i want to determine which version of xcode was used to develop the project.
In project.pbxproj when i go to section /* Begin PBXProject section */ it says
compatibilityVersion = "Xcode 3.2";
so my guess is it has been developed on some 4.x version not on xcode 5. Please suggest.
If you have .xcarchive or .ipa file that is associated with the project then you can determine the version of Xcode that was used to build it. Xcode adds, among other things, a "DTXcode" key to the info.plist upon build.
So open your .xcarchive file with Finder or rename the .ipa file to .zip and open that with Finder.
Navigate to find the app bundle file - that's the one with the .app extension. Right click and "Show Package Contents." Find the info.plist and open that with a text editor.
You will see something like:
<key>DTXcode</key>
<string>0611</string>
In this case, 611 is Xcode 6.1.1.
Alternatively, if you have access to iTunesConnect, you can see the details of a binary that was uploaded. Look for "Build Details" and find a key called "Build SDK." It will be an alphanumeric string, e.g. 12B411.
Since Apple usually only bundles one version of the SDK with Xcode, you can use this site to find the version of Xcode that corresponds to the SDK:
https://en.wikipedia.org/wiki/Xcode
In the case of 12B411, I see that is was iOS 8.1 final, which was bundled with Xcode 6.1 build 6A1052d.
If you open the project.pbxproj file and search for CreatedOnToolsVersion, it looks like that will give you what you want here, at least with newer versions of Xcode.
I see it set to 7.3.1 in one of my projects and 8.3.2 in another, created with that version of Xcode.
On Xcode 11-12, This works for me:
in your schema file it mentioned the last used Xcode version.
YourProject.xcodeproj/xcshareddata/xcschemes/YourSchema.xcscheme
LastUpgradeVersion = "1160" means Xcode 11.6
Xcode changes this value when you click on Update to recommended settings warning!.
Even if you uncheck all recommended settings and click done it still changes the number.

XCode project cannot run app on IOS <7 when empty .xib is added

I have inherited a XCode project. It contains some .xibs. I can run the app on an IOS 5 iPad just fine until I open one of the .xibs. It is then converted to a new format and then I cannot start the app anymore. The same happens when I add an empty .xib
What could be wrong with my project?
If you have added .xib file with new xcode than you can't run the project with lower version of xcodes, Because the lower xcode versions can't parse the xib files.
You need to mark the files as compatible with earlier versions of iOS.
In the properties of the file, you need to make sure that the 'Builds for' option is set to the appropriate deployment target e.g. iOS 5.0 and Later. That will allow them to run on the older version of iOS. Additionally, if you want to retain compatibility with an older version of iOS, you should change the 'Opens in' option.
.
Here is what you have to do when you cannot install your app in the simulator:
Uninstall the app in the simulator
Try again
When you switch to Opens in Xcode 5.0 for some reason you get an error updating an existing app in the simulator.

How to build iPhone and iPad targets with the same filename in Xcode 4?

Our company created an iOS app that has an iPhone version and an iPad version. The app is called "SaveMyPlace". We wanted to call the iPad version "SaveMyPlaceHD", but that name was too long, and got truncated on the springboard screen.
We ended up calling both versions of the app the same thing, "SaveMyPlace." This worked find in Xcode 3.x. You just select your first target, build it, do what you need with it, then select the second target, build that, and you're good to go.
In XCode 4, the build system wants to build both targets at the same time. I have 2 targets set up, with the appropriate source files nibs, graphics, etc, set up for each target. However, Xcode builds both targets in the same directory, and the iPhone version ends up overwriting the iPad version of the the app.
How do I set up Xcode to build 2 separate targets with the same filename, and save the resulting .app files into separate directories?
Just beacuse your app's name is different doesn't mean that you can't just display the same name on springboard.
In your info plist
CFBundleIdentifier defines the unique id for your app.
CFBundleName defines the name displayed on springboard.

Resources