So I am banging my head, I realized my stand along Watch App had a STUPID long name of "App Name - WatchKit App" so I went into my Target and changed the Display Name to "App Name" removing WatchKit App. Well now my app won't validate when uploading to the Appstore. I get the message - Invalid Info.plist key. The key
WKExtensionDelegateClassName in bundle App Name.app/Watch/App Name WatchKit App.app is invalid.
My Info.plist has the value of
<key>WKExtensionDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).ExtensionDelegate</string>
I have confirmed that I have @WKExtensionDelegateAdaptor(ExtensionDelegate.self) var delegate in my @main for the SwiftUI App. And when I print a few values in my app launch I get the following confirmations:
Super Init - ExtensionDelegate
Contentview
applicationDidFinishLaunching for watchOS
Super Init - ExtensionDelegate
Optional(My_App_Extension.Setup)
Optional(My_App_Extension.Statistics)
Optional(My_App_Extension.Other)
applicationDidBecomeActive for watchOS
update complication
I create three classes at launch and print this in the log with print(ExtensionDelegate.shared.Setup as Any) , etc. The other lines are just confirming where I am at app startup.
This is a WatchOS8 application and I am running Xcode version Version 13.1 (13A1030d).
Post
Replies
Boosts
Views
Activity
I have an app that I would like to test on Mac Sequoia. But when I build in Xcode Cloud, it seems to fail with a This bundle is invalid. Apple is not currently accepting applications built with this version of the OS. It also complains about the release train being closed, but I created a new release (set to manually be released). And it is pulling an old CFBundleShortVersionString somehow, but the other app versions (iOS and VisIonOS) in the same Xcode Cloud build work fine.
I am working thru the issues of turning on Strict Concurrency Checking. I have a SwiftData application, and I am compressing images before saving them as data. My save function is pretty simple
private func save() {
ImageCompressor.compress(image: (frontImageSelected?.asUIImage())!, maxByte: 1_048_576) { image in
guard image != nil else {
print("Error compressing image")
return
}
if let greetingCard {
greetingCard.cardName = cardName
greetingCard.cardFront = image?.pngData()
greetingCard.cardManufacturer = cardManufacturer
greetingCard.cardURL = cardURL
greetingCard.eventType = eventType
} else {
let newGreetingCard = GreetingCard(cardName: cardName, cardFront: image?.pngData(), eventType: eventType, cardManufacturer: cardManufacturer, cardURL: cardURL)
modelContext.insert(newGreetingCard)
}
}
}
I compress the selected image, I had to change my ImageCompressor.compress closure to Sendable, but now every assignment above is flagging with the above warning. I define the greetingCard as var greetingCard: GreetingCard? in my view, since I can have it passed in for edit, or generated if new.
I also get the same warning on modelContext, which is defined as @Environment(\.modelContext) private var modelContext.
It's not clear to me how to address this warning. Any pointers would be helpful.
I made a minor change the UI of my tvOS App, and am now getting errors related to the App Icon. I have confirmed that all the background images DO match the requirements but App Store Connect won't let me upload:
App Store Connect Operation Error
Invalid Image Asset. The image stack 'App Icon' in 'Payload/My TV.app/Assets.car' has a background layer image that does not match the canvas dimensions '400x240'.
App Store Connect Operation Error
Invalid Image Asset. The image stack 'App Icon' in 'Payload/My TV.app/Assets.car' has a background layer image that does not match the canvas dimensions '800x480'.
App Store Connect Operation Error
Invalid Image Asset. The image stack 'App Icon' in 'Payload/My TV.app/Assets.car' has a background layer image that does not match the canvas dimensions '1280x768'.
App Store Connect Operation Error
Invalid Image Asset. The image stack 'App Icon' in 'Payload/My TV.app/Assets.car' has a background layer image that does not match the canvas dimensions '2560x1536'.
App Store Connect Operation Error
Invalid Image Asset. The App Store Icon must only contain an image with size (1280pt × 768pt @1x). Refer to https://developer.apple.com/tvos/human-interface-guidelines/icons-and-images/app-icon for more information
Have the standards changed? Or is there another issue I should be looking at? Thanks!
I've been really happy with Xcode Cloud, but as a single developer with a very simple app, I cannot justify the upcoming paid service. I have two apps with minimal amount of work going on for the one that I used to test Xcode Cloud.
Two questions:
What do I need to do with my Xcode project to successfully disable Xcode cloud?
What is the correct approach to disable the upcoming billing for Xcode cloud?
Thanks for any pointers.
I've been trying to use the example from this session to tweak the default SwiftData template, allowing for syncing of the data across devices. When I added the following code, I get the above error:
@main
struct ItemApp: App {
let items = ModelConfiguration(schema: Schema([Item.self]), url: URL(filePath: "/path/to/item.store"), cloudKitContainerIdentifier: "iCloud.com.app.Item")
let container = try ModelContainer(for: items). // ERROR HERE
var body: some Scene {
WindowGroup {
ContentView()
}
.modelContainer(container)
}
}
Cannot use instance member 'items' within property initializer; property initializers run before 'self' is available
Any pointers would be helpful.
In the last few days my Xcode cloud builds are failing with error 65. After downloading the logs and digging thru them, I am seeing the following error -
line 6: $(CURRENT_PROJECT_VERSION) + 1: syntax error: operand expected (error token is "$(CURRENT_PROJECT_VERSION) + 1")
This started after I did a check in of my code via the GIT Desktop app instead of Xcode. Since then I have deleted my workflow, recreated it, and reset my release # to try and clear this message, but every build fails with the exact same error.
I have raised a feedback, but I am currently stuck to building and distributing my app to my TestFlight users. (I don't want to go back to the manual method, I am really enjoying Xcode cloud).
Any suggestions on how to resolve this?
I have tried to connect my Apple TV 4K to Xcode, via wireless. I get to the point where I enter the six digit code displayed on the Apple TV, and then Xcode just redisplays the messages to Pair the TV. Any suggestions?
I noticed that this year the Developer App is not allowing me to run the videos in full screen mode. I have confirmed this on a 2019 16inch MBP and 2021 11 Inch iPad Pro. Is anyone else seeing this issue?
I just updated my project for localization, when I enabled this for SiriIntents, my signings & capabilities settings for the SiriExtension stopped seeing the info.plist. -
..."/SiriExtension/SiriExtension.entitlements" could not be opened.
Verify the value of the CODE_SIGN_ENTITLEMENTS build setting for target "SiriExtension" is correct and that the file exists on disk.
I am running Xcode Version 13.1 (13A1030d), which has created a Info.plist which lists all the localizations I have done, and in each directory below it contains a SiriExtension.engitlemetns file.
How should I setup the SiriExtension.entitlements correctly?
I have an Intent handler that is used on iOS in shortcuts for my app. The app is also a Catalyst app, but when I try to build it with the Extension I get the following message.
error: Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier.
I am assuming that I cannot include the extension in Catalyst, is that true in iOS14?
I have recently installed a new UPS which as a service to automatically shut down my Mac when certain events happen. It required that I install java. It required I install a new version of java from the Oracle site - here's my version info
java 15.0.1 2020-10-20
Java(TM) SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)
now when ever I try to upload via Organizer in Xcode I get the following message:
Could not find or load main class 1.Library.Java.Extensions:.Library.Java.Extensions:.Network.Library.Java.Extensions:.System.Library.Java.Extensions:.usr.lib.java:.
Has anyone else seen this? Other than removing the UPS software any ideas how to fix?
I have an App I've been working on with CloudKit to sync data between App on iOS, iPadOS and macOS. I have updated my iPhone and iPad to latest betas. On the iPad I had to wipe and rebuild from scratch. As of now, the iPhone is working fine and changes are showing up on my Mac, but the iPad is not pulling down the data that is in CloudKit. Is there some security or beta testing change that is causing this? They are all logged into the same iCloud account.
I've created a Catalyst app that runs on WatchOS, iOS, iPadOS and MacOS. It stores some basic data in UserDefaults using Combine. The latest builds are starting to get the following error.2020-05-25 12:10:30.535305-0400 Wasted Time[82077:918516] [User Defaults] Couldn't write values for keys (
ApplicationAccessibilityEnabled
) in CFPrefsPlistSource<0x600002c15f00> (Domain: com.apple.Accessibility, User: kCFPreferencesCurrentUser, ByHost: No,
2020-05-25 12:10:30.538688-0400 Wasted Time[82077:918516] [User Defaults] Couldn't write values for keys (
AccessibilityEnabled
) in CFPrefsPlistSource<0x600002c15f00> (Domain: com.apple.Accessibility, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
2020-05-25 12:10:30.539074-0400 Wasted Time[82077:918516] [User Defaults] Couldn't write values for keys (
FullKeyboardAccessFocusRingEnabled
) in CFPrefsPlistSource<0x600002c15f00> (Domain: com.apple.Accessibility, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
2020-05-25 12:10:30.540987-0400 Wasted Time[82077:918516] [User Defaults] Couldn't write values for keys (
ApplicationAccessibilityEnabled
) in CFPrefsPlistSource<0x600002c15f00> (Domain: com.apple.Accessibility, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
Container: (null), Contents Need Refresh: Yes): setting preferences outside an application's container requires useI I haveI have cofirmed that my App Sandbox settings are showing "File Access -> User Selected File -> Read/Write". The app has a custom suiteName for my UserDefaults, and apprears to actually make the updates. (I do see this error in both Xcode 11 and Xcode 11.5(11E608c).How do I resolve this error?
Working working with a SwiftUI Architecture WatchOS app, if you want to use ExtensionDelegate you need to create your own. I have done this, but when I try to actually access the delegate in the code, I am getting the following error message Could not cast value of type SwiftUI.ExtensionDelegate' (0x7fff8441b480) to 'TestMe_WatchKit_Extension.ExtensionDelegate' (0x10c3b36d0).
I have defined the ExtensionDelegate as -
class ExtensionDelegate: NSObject, WKExtensionDelegate {
		var meetingStatistics:	MeetingStatistics = MeetingStatistics()
}
in my @main - I have the following:
@main
struct WatchApp: App {
@WKExtensionDelegateAdaptor(ExtensionDelegate.self) var delegate
// code
}
When I try to access the delegate within another class, not via @EnvironmentObject, but via - let delegate = WKExtension.shared().delegate as! ExtensionDelegate I get the above error.