Posts

Post not yet marked as solved
0 Replies
543 Views
I am looking for guidance. Briefly: when Mac Catalyst first came out there was no App Store Connect issue, and I was able to place three related apps on the Mac App Store. Indeed, those Apps also built and ran on iOS and tvOS so could be used on an iPod, iPhone, iMac and a large screen TV. Now I cannot upload new binaries for 2 of the 3 Catalyst Apps, only the App with its App ID Prefix == my TEAM_ID will upload. The other two Apps date from the early times of the iOS Store and have random but unique App ID Prefix values, instead of the TEAM_ID. The upload issue is: It’s important to me to get these Catalyst updates out because Monterey changes cause them to crash when, for instance, the user does something innocuous like clicking the About menu (HTML vs RTF bug). But I also want to make feature updates. Details: the bundle named GO is an interface between UIKit and AppKit, so I can access window resize/fullscreen methods (to make the review team happy), and interfaces like NSOpenPanel, NSSavePanel, NSColorPanel and NSWindow (to make me happy).  I am asking advice on how to proceed to get new Catalyst binaries uploaded, and these are some of the ideas I have come up with, none of which are pleasing to me: Do not use the AppKit bundle GO at all, and have the macOS experience fail. Obviously I do not want to do this. Keep the Catalyst version frozen, Monterey bugs and all, and only update iOS and tvOS. Yuck. Use a new App ID that has my TEAM_ID as the App ID prefix. This works, but has the terrifying result that the App is now entirely new and has to be re-purchased. Right now, the three apps are Universal: universal in that one purchase gets iOS/macOS/tvOS versions, and on macOS universal Intel/ARM. I think Apple is driving in this direction, Apps that just work, everywhere, and that’s what this 70-year old is trying to do. So how can I realize this universal idea without impacting users? I notice that to GO bundle as Xcode creates it has no profile and no entitlements. Is it possible to make a minimal profile with com.apple.application-identifier (and application-identifier) values that match the old-style non-TEAM_ID, and how do I do that? Or can I now access AppKit from Catalyst some other way I am not aware of? Thoughts appreciated, thanks.
Posted Last updated
.
Post not yet marked as solved
0 Replies
675 Views
I have an App that builds for iOS, iPadOS, macOS and Apple TV, which was last released to all the App Stores in April. Preferences/settings are handled by the App itself except for the Apple TV variant, where I use a Settings bundle. This worked fine until tvOS 15.0, where it appears that tvOS is not updating the value of the App’s settings from NSUserDefaults when the Settings App opens. I have been working on this problem off and on for the last week and am at wits end. I’ve searched WWDC videos looking for a clue, there must be some simple change I cannot see. I’ve made clean projects for iOS and tvOS, and using the identical OBJ-C code and Settings plist entries, the iOS version works perfectly, the tvOS version fails in the simulator and on the device. I am not trying to synchronize Settings across devices, just persist across restarts on a single device. My code stores data correctly in NSUserDefaults, it simply seems that tvOS Settings App is not reading values from there for display, nor writing changes that the user makes from Settings back to user defaults. None of the types in the test projects work: TexField, Switch, Title. The test code is so simple I hesitate to include it, but the code and the NSUserDefaults key identifiers do match. This code will preset my App’s version number for Settings to display in iOS 15 but not tvOS 15. It used to work in tvOS 14: <key>DefaultValue</key> <string>DefaultVersionValue</string> <key>Type</key> <string>PSTitleValueSpecifier</string> <key>Title</key> <string>Version</string> <key>Key</key> <string>VersionKey</string> </dict> ```   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];    [ud registerDefaults:@{      @"TextFieldKey" : @"TextFieldValue",      @"VersionKey" : @"VersionValue"    }];        [ud setObject:@"3.14" forKey:@"VersionKey"]; Any idea? Many thanks.
Posted Last updated
.
Post marked as solved
3 Replies
2.4k Views
I have a maccatalyst App on the store, uploaded 20 March. Am now attempting to upload a new version but it fails with:"Unable to process application at this time due to the following error: Invalid Provisioning Profile. The provisioning profile included in the bundle maccatalyst.com.plugh.XYZZY [maccatalyst.com.plugh.XYZZY.pkg/Payload/XYZZY.app] is invalid. [Invalid 'com.apple.application-identifier' entitlement value.] For more information, visit the macOS Developer Portal"As I mentioned this App is already on the store and nothing has change in the project relating to profiles/signing to my knowledge other than a new Xcode. In fact, signing and provisioning is all automatic, and the maccatalyst app id is auto-generatedInterestingly, I still have the previous App bundle that was successfully uploaded to the store, and when I (re-)verify it there is an identical error to the above. So I am at a loss as to how to move ahead at this point in time.
Posted Last updated
.
Post not yet marked as solved
2 Replies
850 Views
Here is a small program to help me understand NSDecimalNumber, but I’m even more confused now and hope someone can explain what’s going on. This example simply inverts a number, then inverts that result with the goal of obtaining the original value. This seems possible with small numbers but as the exponent power of 10 increases inaccuracies creep in that I cannot explain (so that I can make corrections). Further, as I increase the number of times a number is inverted the greater the inaccuracies become; however these behaviors only occur with certain powers of ten. The sample program centers on inverting the number 7, and 7 raised to various powers of 10: 7e+0 though 7e+99. For each of these numbers a recursive function is called that performs the actual inversion a given number of times. And there is a particular power of ten that demarcates “good” behavior from “bad” behavior: around e+16 (ah, double accuracy). I am aware of standard floating point gotchas, all I need is approximately 15 significant digits, but with repeatable results. So far I have not discovered how to use scale and rounding properly, apparently. If I use doubles I can perform this inversion any number of times. It doesn’t make any difference if the initial NSDecimalNumber is created with decimalNumberWithString: or decimalNumberWithMantissa:exponent:isNegative:. This is a subset of the results, ranging from 7e+15 through 7e+42, using recursion counts 0, 2 and 4. When the recursion count is 0 the NSDecimalNumber is never really inverted, we get to see its initial value which itself seems odd to me in many cases. Note that the recursion count should always be even to get the original value back. With 2 inversions failures begin at 7e+17 through 7e+34 - and what’s with 7e+32 ~= 10e+32 ? With 4 inversions 7e+20 isn’t even close, as are various others. Interestingly, as the power of 10 becomes even larger results return to “reasonable”. There must be something very basic I am missing. DecNum.out - https://developer.apple.com/forums/content/attachment/4db54a7a-e52d-4f24-a0f7-9ae6228466e9 DecNum.c - https://developer.apple.com/forums/content/attachment/700c379e-ec07-4b80-a1b4-29b91dabcd2e
Posted Last updated
.
Post marked as solved
3 Replies
773 Views
An App that has been on the iOS App Store for 11 *years*, was just now metadata rejected (2. 1 Performance: App Completeness) while under its first tvOS review - can *anyone* explain what (and/or why) review is asking? I have no business, just lil'l ol' me and a registered domain, and I have no idea how to proceed; here is the exact text: Hello, Thank you for your submission. To help us proceed with the review of your app, please provide documentation demonstrating ownership of the business or organization. The documentation you submit should include the following information: You/your company's name Ownership between you (Stephen XYZZY) and the business/entity (ANYolAPPNAME) Relevant signatures & dates Details explaining your affiliation with the business/entity Please provide appropriate documentation showing ownership of the business or organization, or submit the app under your clients' account for which the app was designed. Best regards, App Store Review
Posted Last updated
.
Post marked as solved
4 Replies
2.8k Views
My Catalyst App was rejected because it does not "look nice" in Mac's full screen mode. And that is true, it's designed as a windowed App. My first thought is to disable the green zoom button, but AFAIK I need a pointer to the NSWindow object to do that, and that's not available.Any suggestions on what to do here? I do not mind if the green button toggles the App between its max size and the last user chosen size, say, but it's not proper for the App to enter full screen mode.Thanks,
Posted Last updated
.
Post marked as solved
3 Replies
1.3k Views
After a few weeks of work my Objective-C Catalyst App is ready, except for the main menu, which I cannot change because I cannot seem to properly override buildMenuWithBuilder. This is the signature I am using, which seems like it should work:- (void)buildMenuWithBuilder:(id&lt;UIMenuBuilder&gt;)builder { NSLog(@"BUILD MENU=%@", builder); }I conform to the &lt;UIMenuBuilder&gt; protocol. This code is in my UIApplicationDelegate subclass. Any suggestions as to what I am missing? Thanks.
Posted Last updated
.