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.
Related
My iPhoneXR updated to 15.7, and XCode updated to 14. Which happened right as MacOS was updating, so I'm wondering if something got wonked with the XCode update. Now I can't program my phone.
Looking in
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
there is no 15.7. But the various github repositories that have various support files, none of them include 15.7. Is there a place these are stored at?
When I open the "downloads" window for XCode, it's just a blank window.
The 15.7 support files can be downloaded from: https://github.com/JinjunHan/iOSDeviceSupport
Unzip the file in the DeviceSupport folder and (re)start xCode.
See Xcode 14 Release Notes:
Xcode 14 cannot be used with iOS 15.7 for development. (99847608)
Workaround: Use Xcode 13.4.1 with iOS 15.7.
This has been resolved in the latest release candidate of Xcode 14.0.1 which can be downloaded directly from here. Apparently, Apple left out all support for 15.7 in the first release of Xcode 14.
DO NOT download what amounts to an Xcode patch from some random github repository and then patch your build system with it, like suggested in another answer!
If you can't or do not want to upgrade to Xcode 14, and instead want to patch your Xcode 13 installation, you should download the files directly from Apple. The following describes the process step by step.
Go to https://developer.apple.com/xcode/
Click the blue "download" button.
A menu opens. Select "website" from the menu.
This will download an xib archive. This file is large (between 7 and 8GB)
Open the xib archive in a Finder window, right-click on Xcode and select "Show Package Contents". Then navigate to Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
Inside you will see directories for iOS versions. Choose the ones you are missing in your Xcode 13 installation and copy them over to /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
I have an Xcode project built with Xcode 7.3.1 (7D1014) and Swift.
After an urgent bugfix I need to upload the new ipa but I'm getting the following error message:
ERROR ITMS-90725: "SDK Version Issue. This app was built with the iOS
'9.3' SDK. All iOS apps submitted to the App Store must be built with
the iOS '11.0' SDK or later, included in Xcode [9.0] or later. Please
update Xcode and rebuild your app."
Because it's an urgent update, I haven't time to update, convert and fix all error messages.
Does anybody know a workaround?
How does Xcode know what iOS SDK I was using to build the app? Or, can I use the iOS 11.0 SDK in Xcode 7.3.1?
I'm sorry but there are not workarounds, from July 2018 all iOS app updates submitted to the App Store must be built with the iOS 11 SDK and must support the Super Retina display of iPhone X.
You can find more informations here.
You need to archive the project with your current Xcode version ( 7.3.1 ) then generate the ipa from Xcode 9 -> Window -> Organizer -> Select the archive -> Export
There is a solution! I tried 2-3 days and now it works! You can use older versions of xcode with iOS 11.0 or 12.0 sdk. It's not that short please follow the steps carefully.
1-)Install xcode 9 or xcode 10 into your mac (or another mac if you have)
2-)GO >> Applications >> right click x code 9/10 and show package content. Contents >> Developer >> Platforms >> iPhoneOS Platform >> Developer >> SDKs >> iPhoneOS11 or 12 SDK. COPY SDKsettings.plist file into another folder on desktop. Please open a folder on desktop and paste into that folder. Don't paste it on desktop directly.
3-)Now for the older version GO >> Applications >> ... >> SDKs >> iPhoneOS9.2 SDK in the older xcode such as 7-8 version. Click on the SDKsettings.plist and send it into trash folder. Open another folder on desktop and move it on that folder from trash. No copy-paste here.
4-)NOW open the folder which contains newest SDK file (mentioned in the 2nd step). Copy that file and paste into the older x code >> GO >> APP >> ... SDKs >> into BOTH iphoneOS9.2sdk and iphoneOS.sdk folders. Change the folder name from iphoneOS9.2 to 11.0 or 12.0 depending the newest SDK you have. Don't change the name of iphoneOS folder.
5-)Open your older xcode and now you can see the SDK version is changed to 11 or 12 in build settings (target).
6-)Still not enough --- More to do.
7-)Open a new single view app project in the newest xcode. No need to code. You just need the newest ASSESTS.car file. COPY your assets folder from your original project (x code 7/8) to this new project (x code 9/10). Make sure that you fill all AppIcons on the assests in the newest version of xcode. In the info part please add the security things you use in your original code (such as ATC, NSLocation etc.) Also add a row and write CFBundleIconName >> AppIcon. Build and RUN the project. Open the archieve from organizer. Right click and show in finder. Then right click show package contents. Products >> Applications >> Right click and show package contents. Copy ONLY THAT files >> all.png files + Assets.car + Info.plist + PkgInfo and paste into another new folder on desktop.
8-) Now open your original code in xcode 7/8 etc. Build and RUN the code. Open the archieve from organizer. Right click and show in finder. Double click Info.plist file. Add a row and write CFBundleIconName >> AppIcon. Now turn back and Products >> Applications >> Right click and show package contents.
9-)Copy all files on the desktop folder mentioned in the 7th step. Paste the files into folder in the 8th step. Click replace.
10-)Now upload your archieve from xcode 7/8 to appstore! DONE..
Im uploading my application using the itunes connect online tool. I get this error saying "No .app bundles found in the package". What is wrong?
I have this problem developing my apps in XCode 7.3.1 with OS X El Capitan and then update to macOS Sierra and Xcode 8.
I can solve this problem following the next steps:
Archive your app with Xcode 7.3.1 (download in developer.apple.com)
When you archived your app, find your archive in the Organizer, and then:
"Show in finder";
"Show package contents";
In the "xx.xcarchive" file, find the "Products"-"Applications"-"xx.app"(xx is your app's name), "Show package contents" again;
Finally, you can see there has a file named"Info.plist",
open it;
Edit the value with a key named "BuildMachineOSBuild", I just change it to "16A323"(it's "macOS Sierra" 's version);
Edit the value with a key named "DTXcodeBuild" with the Xcode 8 version number "8A218a"
After that, you can upload this archive use Xcode 8 or Application Loader in macOS Sierra, whatever you want!
Info.plist
You are probably zipping your bundle before build completion
I got that message when i tried to archive the App with my hard drive full. (less than 500mo).
I free some space on my drive and it validate successfully.
I have a new version of Xcode. I have an iOS device with a new version of iOS installed on it.
I want to build my app with the old iOS SDK, using the new version of Xcode.
How?
You don't; the contents of the Xcode.app bundle should not be modified.
Any particular release of Xcode includes the SDKs against which it was qualified, and using any other SDK with it is unsupported.
I was also running the same problem when I updated to xcode 5 it removed older sdk. But I taken the copy of older SDK from another computer and the same you can download from following link.
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com test account test#yopmail.com/test)
There are 2 ways to work with.
1) Unzip and paste this folder to /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs & restart the xcode.
But this might again removed by Xcode if you update xcode.
2) Another way is Unzip and paste where you want and go to /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs and create a symbolic link here, so that the SDK will remain same even if you update the Xcode.
Another change I made, Build Setting > Architectures > standard (not 64) so list all the versions of Deployment Target
No need to download the zip if you only wanted to change the deployment target.
Here are some screenshots.
This answer is incorrect and its use is unsupported by Xcode. I am just leaving it here for historical reasons.
1. Copy the SDK from old Xcode to new Xcode
Open your Applications folder.
Right-click on the old version of Xcode and select Show Package Contents.
Navigate to Contents -> Developer -> Platforms -> iPhoneOS.platform -> Developer -> SDKs.
In a new window, open the same folder inside the new version of Xcode.
Copy the SDK you want from old to new.
If the new version of Xcode is running, you'll need to restart it now.
2. Set your SDK when building
In your project settings, select the target you're building on the left. Then select Build Settings, then Base SDK. You should now see two versions of the SDK. Select the SDK you'd like to build against.
I've opened an iOS project - with Xcode 4.4.1 - that I hadn't opened for 2 months (ie with Xcode 4.3). First, Xcode was crashing constantly right after displaying the project navigator saying something like "Failed to associate working tree".
I tried to fix it by removing xcuserdata files and the project.xcworkspace directory as well.
Now, Xcode opens without crashing but in the scheme view, it is shown as a Mac OS X project whereas both the project and the target are correctly set to a "Latest iOS" base SDK.
How can I fix that without having to recreate a project and copy all my source files?
EDIT: i'm using Git with a GitHub remote.
make a new scheme for ios by clicking on the current scheme then "new scheme"
Roll back using version control. If you post which version control system you are using, somebody will be able to give you the specific command to use.
I had a similar problem with all my Xcode projects. Every iOS project got turned into an OS X project without me changing any settings. A reinstallation of Xcode fixed it for me.
Just set your Root SDK to iOS in your target's Build Settings
SDKROOT = iphoneos