How to specify an LSMinimumSystemVersion? - xcode

How can I change "an LSMinimumSystemVersion value"?
I received this e-mail from Apple:
Dear Developer,
We identified one or more issues with a recent delivery for your app,
"MYAPPNAME" 1.0. Your delivery was successful, but you may wish to
correct the following issues in your next delivery:
ITMS-90899: Apple silicon Mac support issue - The app is not
compatible with the provided minimum macOS version of 12.4. It can run
on macOS 13.0 or later. Please specify an LSMinimumSystemVersion value
of 13.0 or later in a new build, or select a compatible version in App
Store Connect. For details, visit:
https://help.apple.com/app-store-connect/#/dev2de8e790b
After you’ve corrected the issues, you can upload a new binary to App
Store Connect.
Best regards,
The App Store Team

Ran in to the same error a couple of days ago. In Xcode, added the LSMinimumSystemVersion value to the project's info.plist:
Select info.plist in Project Navigator
Right-click on "Information Property List" at the top and select "Add Row"
Select "Minimum System Version" from the "Bundle identifier" droplist.
Set the type to "String".
I put "13.0.0" (without the quotes) for the value.
This adds the following <key> and <string> to your Info.plist, just under the "<dict>" key, right under the "<plist>" key:
<plist version="1.0">
<dict>
<key>LSMinimumSystemVersion</key>
<string>13.0.0</string>
Recreated the archive and redeployed the app. App Store Connect no longer complains about the missing value.

I got the same issue and tried the accepted answer. Setting the LSMinimumSystemVersion to 13.0.0 gave me another error when trying to publish the app:
Invalid LSMinimumSystemVersion - The LSMinimumSystemVersion Info.plist
key has the value “13.0.0”. This string indicates the minimum macOS
version required for this app to run. The value must be between 11.0
and 12.3 and be formatted as “x.x.x.”
I solved it by adding
<key>LSMinimumSystemVersion</key>
<string>12.3.0</string>
to the Info.plist file and also setting the iOS Deployment Target to 12.3 in the project settings. I suspect that to be the main issue since the versions below the target one are probably unsupported by the build. The minimum versions are probably chosen by Apple and might get higher in the future so it's necessary to build always for the officially required range.

There are two ways to address this support issue:
1- Turn off "iPhone and iPad Apps on Apple Silicon Macs".
You can do this per-app, or across all apps in your Apple Connect account. The link in the email points to the documentation.
(NOTE: This is apparently on by default, in new App Store Connect accounts.)
2- If this value is un-set, set it in Info.plist.
The lack of the value seems to trigger this warning, setting it makes it go away for the next build.
NOTE: I think a lot of the text of that email template is possibly incorrect/wrong/inaccurate.
1- It says I had set the value to "12.6", but I hadn't. The template is picking up some default value?
2- It says the value can't be below "13.0". That didn't make much sense to me (my iOS target is set to 15.6 on both project and app-target).
If my target was "16.x", I'd understand why "13.0" would be required. At the same time, after a casual search, I don't see any documented dependency.
3- TestFlight obeys the setting, but "12.6" works.
When I set to 13.0, the build appears in macOS TestFlight, but is disabled, as you would expect.
When I set it to 12.6, the build appears in macOS TestFlight, and is available. Loading and running that build appear to be fine.
NOTE: I'm using the same laptop I develop on, but I did not try running out of Xcode, because this project actually is iPhone only (newly created in Xcode 14.0, and the default Mac destination was removed early on).
(That also might be something that confuses App Connect?)

Related

xcode-cloud-assertion failures when testing Xcode Source Editor Extension

So I have a bare-bones Xcode project with an Xcode Source Editor Extension target attached. I'd like to test the thing, so I hit run. A new instance of Xcode pops up, where my extension should appear in the Editor menu, but there's nothing there. The logs show the following lines (among other things):
2023-01-20 13:44:24.240562-0800 Xcode[2203:46831] [xcode-cloud-assertion] ❌❌❌ Assertion failure #0 in Failed SW AuthKit for: <private>
2023-01-20 13:44:24.249980-0800 Xcode[2203:46831] [xcode-cloud-assertion] ❌❌❌ Assertion failure #0 in Failed to authenticate account: <private> error: <private>
For context, I'm running the following:
macOS 12.6.2
MacBook Pro (Retina, 13-inch, Early 2015)
Xcode 14.0 (14A309)
I'm not enrolled in the Apple Developer Program, and I've never used Xcode Cloud.
It's also worth noting that when I go to Reports > Cloud, I get Analyzing workspace... for a few minutes before Could not load Xcode Cloud data pops up (same issue as described here). I get similar behavior across all projects, including brand new ones. I'm not sure if that has anything to do with these log messages above, but I kind of hope it does.
I've tried the following:
Removing and adding my Apple ID in Xcode, restarting my MacBook in between
Deleting my development certificates
The main thing is that I'd like to be able to test my source editor extension. Any ideas?
Found it. The problem is XcodeKit, which isn't set to sign out of the box. I was able to fix it by setting it to Embed & Sign under General > Frameworks and Libraries > XcodeKit.framework (see screenshot).

iTunes Store operation failed. You must supply a CFBundleIdentifier for this request

i just signed up for this place, i have made app everything is working fine with app all the certificates and files are updated but when i try to upload to app store from xcode i keep getting this error. if anybody could help me to fix it it will be great thank you
iTunes Store operation failed.You must supply a CFBundleIdentifier for this request.
Your info.plist application is wrong.
open your info.plist,"Bundle OS Type code" is null.I met the same problem,and add "APPL" to "Bundle OS Type code",that's OK.
Your info.plist configuration is wrong.
open your info.plist,"Bundle OS Type code" is null.I met the same problem,and add "APPL" to "Bundle OS Type code",that's OK. See image here
Login in Apple Developer, go to Certificates*Profiles, delete all development and distribute signing certificates and provisioning profiles. Then in Xcode8 you select "Automatically manage signing", recreate signing certificates and provisioning profiles,archive and upload to appstore again.
This one nearly put me mad. How I fixed it was creating a test project and doing an archive on it, and validate, which passed. I then copies all of the build setting from the test project to my project and thankfully everything worked. I know its along way off doing it, but it works.
this is what i have done and it did work for me
i did have to explicitly add the bundle identifier in the .plist file like this
<key>CFBundleIdentifier</key>
<string>com.AppIdentifier</string>
instead of
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
the reason might be that i do have multiple target in the project and i was uploading the app from the application loader
please note that in both cases i was able to archive successfully
env.
Xcode 10.1
High Sierra 10.13.6

ITMS-90289 - Using App Groups in Mac App Store

I have tried to submit my app to the Mac App Store and I am being shown Error ITMS-90289.
I am not sure where I am going wrong. Should I be naming the app group something different?
ERROR ITMS-90289: "Invalid code signing entitlements. Your application bundle's signature contains code signing entitlements that are not supported on Mac OS X. Specifically, value '[group.co.uk.smudgeinc.BLANK]' for key 'com.apple.security.application-groups' in 'co.uk.smudgeinc.BLANK' is not supported. This value should be a string or an array of strings, each starting with your TEAMID followed by a dot '.'."
group.identifier is used for iOS App Group names.
For Mac projects, the App Group should start with your Team ID (found here: https://developer.apple.com/account/#/membership).
When you add an App Group to your project, Xcode fills the name with $(TeamIdentifierPrefix). My project failed validation when I used $(TeamIdentifierPrefix).name, showing a similar message to yours.
Explicitly setting this value to [Team ID].name resolved the issue for me (i.e. Team ID is "ABC123" – use ABC123.name).

iOS 8.2 Settings.bundle default value

I have an application with a Settings.bundle file.
I added a default value to a specific field, but whenever I want to read this in the application on iOS 8.2, I get 'nil' back.
However when I do this on iOS 7.1 (basically every version below iOS 8.2), I get the correct default value.
Does anyone know if there has been changed something in iOS 8.2 that is causing this and how to fix this? I've already deleted the app and built again.
Maybe a small note, I build with Xcode 5. But that doesn't make any difference if I'm using Xcode 5 or Xcode 6. Tested this.
Code:
How I retrieve the default value:
id settings = [NSUserDefaults standardUserDefaults];
[settings objectForKey:#"defaultValueUrl"];
Settings.bundle:
http://i62.tinypic.com/10nrmhd.png
Thanks!
The default values in your Settings bundle are not written to your app’s NSUserDefaults until the user actually goes to Settings and changes them. This has always been the case. Not sure why it was “working” for you before—maybe you never uninstalled the app from device and it kept the old settings around?
What you should do in your code, is to register default settings at startup. (Yes, this is somewhat duplicating what’s going on in your Settings bundle. That’s life.)
[[NUSUserDefaults standardDefaults] registerDefaults:
#{ #"defaultValueURL": #"http://example.com" }];
Now, this defaults key will always have the correct default value, with or without Settings bundle.
Read this post for more info.

Xcode 4.4.1 code signing issue

I have this code signing issue that came up only recently when I tried to submit my Mac application (not iOS) with Xcode 4.4.1
When I tried to validate my app's archive, validation fails with these two errors:
Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. According to the provisioning profile, the bundle contains a key value that is not allowed: 'com.(mycompany).(myapp)' for the key 'com.apple.application-identifier' in 'MyAppBundle.app/Contents/MacOS/MyAppExecutable'
Invalid code signing entitlements. Your application's bundle signature contains code signing entitlements that are not supported on Mac OS X. Specifically, value 'com.(mycompany).(myapp)' for key 'com.apple.application-identifier' in 'MyAppBundle.app/Contents/MacOS/MyAppExecutable' is not supported. This value should be a string starting with your TEAMID, followed by a dot '.' followed by the bundle identifier.
This bundle is invalid. Apple is not currently accepting applications built with this version of the OS.
I've tried the following but none of them worked:
re-downloading and re-generating code signing certificates.
Specifying my team ID in the code signing parameters:
-i "(TEAMID).com.(mycompany).(myapp)" --entitlements "(MyAppEntitlementFile).entitlements"
Anybody can help? Thanks in advance.
I've fixed this by editing my entitlements file using Xcode's property list editor (not the fancy-looking GUI in the target's Summary tab) and remove the key named com.apple.application-identifier along with its value.
I'm not sure how that key-value pair got there in the first place because I'm quite confident that I didn't put it in there myself. This project was originally coded for Snow Leopard without sandboxing and went through a number of Xcode versions. Perhaps an old version of Xcode put it there and it conflicted with the newer one.

Resources