Dive into the vast array of tools and services available to developers.

Post

Replies

Boosts

Views

Activity

HUD guide
Hello, I am looking for a guide on what the HUD graph axis' are, with my main curiosity around the GPU metering. Is this number the load average of the cores, similar to the load avg you see in uptime/top or is it another descriptor? I've not been able to refer to a man page or the readme for this, google searches have yielded me many ways to disable the HUD, but no guide
2
0
705
Feb ’24
Duplicate symbol error but Xcode doesn't specify where
I have an Xcode project that include a .c file and .h header file. I am getting a duplicate symbol error and I cannot pinpoint what part of my code is the issue or maybe if it's a configuration issue in my Xcode settings or not. Here's my .h header file code with my declarations: #define smc_h #include <stdint.h> #include <mach/mach.h> #include <IOKit/IOKitLib.h> typedef struct { uint32_t datasize; uint32_t datatype; uint8_t data[8]; } SMCVal_t; extern io_connect_t conn; kern_return_t openSMC(void); kern_return_t closeSMC(void); kern_return_t readSMC(char *key, SMCVal_t *val); double convertToFahrenheit(SMCVal_t *val); #endif /* smc_h */ And here is my .c implementation: #include "smc.h" #include <mach/mach.h> #include <IOKit/IOKitLib.h> io_connect_t conn; kern_return_t openSMC(void) { kern_return_t result; kern_return_t service; io_iterator_t iterator; service = IOServiceGetMatchingServices(kIOMainPortDefault, IOServiceMatching("AppleSMC"), &iterator); if(service == 0) { printf("error: could not match dictionary"); return 0; } result = IOServiceOpen(service, mach_task_self(), 0, &conn); IOObjectRelease(service); return 0; } kern_return_t closeSMC(void) { return IOServiceClose(conn); } kern_return_t readSMC(char *key, SMCVal_t *val) { kern_return_t result; uint32_t keyCode = *(uint32_t *)key; SMCVal_t inputStruct; SMCVal_t outputStruct; inputStruct.datasize = sizeof(SMCVal_t); inputStruct.datatype = 'I' << 24; //a left shift operation. turning the I into an int by shifting the ASCII value 24 bits to the left inputStruct.data[0] = keyCode; result = IOConnectCallStructMethod(conn, 5, &inputStruct, sizeof(SMCVal_t), &outputStruct, (size_t*)&inputStruct.datasize); if (result == kIOReturnSuccess) { if (val -> datasize > 0) { if (val -> datatype == ('f' << 24 | 'l' << 16 | 't' << 8 )) { //bit shifting to from 32bit operation associated with the ASCII charecters'f', 'l', and 't', sets datatype field. double temp = *(double *)val -> data; return temp; } } } return 0.0; } double convertToFahrenheit(SMCVal_t *val) { if(val -> datatype == ('f' << 24 | 'l' << 16 | 't' << 8 )) { //checking if val->datatype is equal to the result of the bit-shifting operation. double temp = *(double *)val -> data; return (temp * 9.0 / 5.0) + 32.0; } return 0.0; }
1
0
1.2k
Feb ’24
My experience with Technical Support - Total Disappointment
Recently, our team bumped into a crash that we cannot resolve. We looked for help everywhere. I asked people here on forums, team asked about 10 fellow developers and the question on SO was created. Nobody knows the reason for the crash, nobody can find a workaround. So, as the last resort, I called for Apple Technical Support (aka code-level support). I assumed that people there understand how things work under the hood. Considering that this service is limited (2 TSI per year, otherwise paid), I expected the quality to be high. In fact, it didn't help us to resolve the problem, and I was disappointed how irrelevant the provided support could be. TLDR: The dev didn't even open the test project! I described the memory crash with WidgetKit-based complication. I spend my time capturing video, finding watch logs on my iPhone and creating a sample project. I attached console output, stack traces and a couple of screenshots. I even provided a .watchface file, so they can reproduce the configuration. This together took about 6-8 hours of work. I explained what happens in detail: steps to reproduce, what I've tried. I asked the support to recommend me way to present only the specified complications. Then I submitted the issue and started to wait. It took them 1 week to responsd. I pointed my sight on the email with excitement, expecting to finally get the resolution. But what I found there was disappointing. The software engineer, Rico, quoted only a couple of sentences from my list. His letter contained only 4 lines of text (not including greetings and cheers). In the first line he recommended to use preprocessor macro to enable only necessary complications, which is nonsense. Of course we need to change complications dynamically, when the user selects them. I two next lines he recommends to use if statement in WidgetBundle to dynamically unlock the complications. I already knew that it isn't possible. Because, quote: "if statements in a WidgetBundleBuilder can only be used with #available clauses" @available(*, unavailable, message: "if statements in a WidgetBundleBuilder can only be used with #available clauses") public static func buildOptional<W>(_ widget: W?) where W : Widget The last line cancelled everything before, Rico said that this can't be done at runtime. Probably, he added that after reading the documentation, but forgot to edit his previous statements. I didn't give up completely. I decided to skip the design discussions and get the info that Rico could probably have, due to his access to the software. Why the extension using so much memory? I also asked him, if he was able to build the project and reproduce the bug. Another week passed. I'm sending a follow-up message. That worked, after another 3 days I got the response: Finally some useful information! Timeline and views are being archived to disk (all simultaneously), that's why the memory usage is so high. Basically, a widget design issue. But anyway, we have what we have. Then next line, he has written this: "Complications are deprecated". What? But wait, he thinks that we use ClockKit, and recommends migrating to WidgetKit. So Rico completely forgot that we discussed WidgetBundle and SwiftUI before 🤡 He honestly tells me that he didn't open the project. Why? Because "Complications are unlikely to be supported", he says. So he "forgot" WidgetKit on intention, this gave him an excuse to ignore the sample project. My time was invested for nothing! I believe there's no need in further conversation with Rico. I will provide the detailed feedback to the Apple. And I'm posting it publicly to make sure that Rico gets the attention he deserves. If you want to know more technical details about the issue, you can check the following links: https://stackoverflow.com/q/77855303/1746142 https://developer.apple.com/forums/thread/744726
1
1
719
Feb ’24
Buy iPhone big mistake
Excuse my English. In Greece where I live the apple service is terrible and you can't find a solution. After using android for 15+ years I decided to switch to iphone (iOS) and got the shock of my life. The obvious settings that exist on android on iOS do not exist. For example I have a lot of trouble with the keyboard keys, because it has small keys, I almost can't type text. The settings from "Accessibility" (I'm considered rather handicapped) to enlarge text (I don't know if it also enlarges the keyboard) spoil texts in apps e.g. in X). Also in Greek it doesn't give the possibility to change the layout and I am forced to use Google's gboard or Microsoft's SwiftKey. Also in Adobe Acrobat the list of files in the cloud is flickering. https://www.youtube.com/shorts/Z3s-XpswXe4 ...and the service for printing https://youtube.com/shorts/-3w8-ycR-dc?si=JpJ0mQTeGOaX6DA8 Incredibly stupid problems!
0
0
540
Feb ’24
How do I enroll my client in enterprise developer program.
I am new to iOS/Apple development, and not much familiar with Apple Ecosystem around development. I am facing an issue where my client want to deploy his application on Apple Store, me and my client are in separate countries. I am not sure should I, or can I use my Mac to register an Apple ID for him, and then enroll him in enterprise developer program? As a contractor what is the right way to go about enrolling my client or the client should do it himself?
4
0
781
Feb ’24
I was added as a developer via Business Connect. Do I still need a developer membership?
Hello, I am working on a new App for my company that will be available for iOS and Android. I develop it in Visual Studio using .NET MAUI. I can deploy my development version of the App on an Android device without issues, but when I try to deploy to an iPhone, a dialog wants my Apple credentials. I was invited as a developer in Business Connect by the product manager. The account that invited me is already used for publishing several Apps the company made in the past. I log in with my new Apple developer account, confirmed all legal notices, but when I try to connect to the iPhone from Visual Studio, I get the following error. The Apple account is used for publishing Apps and I was invited as a developer. Do I need to enroll to the Apple Developer Program with my new account just to test the software on my iPhone?
0
0
451
Feb ’24
Enterprise not getting verified on some devices
I have an enterprise app that on 95% of devices, I can trust, verify and run the app . On the other 5% the app remains not verified after using the verify app button. The 2 devices I am testing with are both are running ipadOS 17.3.1. The one that can verify the app is a ipad pro (11-inch) and the other is an ipad pro (12.9-inch). I follow the exact same steps on both devices and the 11-inch always verifies and the 12.9-inch never verifies. On the ipad that does not verify, when I try to open the app I get a popup saying "unable to verify app An internet connection is required to verify trust of the developer" when the ipad has a valid internet connection.
1
0
499
Feb ’24
macho_best_slice is broken?
Recently Apple deprecated the NXFindBestFatArch, used to find the most compatible / appropriate slice in a universal/fat binary. However its replacement macho_best_slice is broken and will return EBADARCH for any non-Apple binary 😓 The issue seems to be that the dyld3::GradedArchs::grade method does not take into the account the nuances of the CPU sub types of type *_ALL. Namely that any CPU with a more specific sub type (e.g. CPU_SUBTYPE_ARM64E) can also still execute code compiled with a CPU sub type of *_ALL (e.g. CPU_SUBTYPE_ARM64_ALL). All the details (+code, +debugging, +disassembly) posted at: https://objective-see.org/blog/blog_0x80.html. Also, hrmm!?:
3
0
609
Feb ’24
Xcode 13.2 Error GAMRequest
I am recently migrated from android to Apple Store. Trying to publish my first Unity Game but this error pop up. Would be great if anyone could help. I think this bug belongs to Admob on Unity Game. Showing All Messages Undefined symbol: OBJC_CLASS$_GAMRequest Undefined symbol: _objc_msgSend$setCustomTargeting: Undefined symbol: _objc_msgSend$categoryExclusions Undefined symbol: OBJC_CLASS$_GAMInterstitialAd Undefined symbol: _objc_msgSend$interstitialAdGAM Undefined symbol: OBJC_CLASS$_GADRewardedInterstitialAd Undefined symbol: _objc_msgSend$setRewardedInterstitialAd: Undefined symbol: _objc_msgSend$didEarnRewardCallback Undefined symbol: _objc_msgSend$presentFromRootViewController:userDidEarnRewardHandler: Undefined symbol: _objc_msgSend$setRewardedAd: Undefined symbol: OBJC_CLASS$_GADRequest Undefined symbol: _objc_msgSend$setKeywords: Undefined symbol: _objc_msgSend$requestAgent Undefined symbol: _objc_msgSend$registerAdNetworkExtras: Undefined symbol: _objc_msgSend$extras Undefined symbol: _objc_msgSend$stringWithFormat: Undefined symbol: _objc_msgSend$objectForKey: Undefined symbol: OBJC_CLASS$_GADInterstitialAd Undefined symbol: _objc_msgSend$interstitialAd Undefined symbol: _objc_msgSend$loadWithAdUnitID:request:completionHandler: Undefined symbol: OBJC_CLASS$_UMPDebugSettings Undefined symbol: OBJC_CLASS$_UMPRequestParameters Undefined symbol: _objc_msgSend$debugSettings Undefined symbol: OBJC_CLASS$_UMPConsentInformation Undefined symbol: OBJC_CLASS$_GADExtras Undefined symbol: _objc_msgSend$countByEnumeratingWithState:objects:count: Undefined symbol: _objc_msgSend$presentFromViewController:completionHandler: Undefined symbol: _objc_msgSend$loadWithCompletionHandler: Undefined symbol: _objc_msgSend$adClickedCallback Undefined symbol: _objc_msgSend$adFailedCallback Undefined symbol: _objc_msgSend$description Undefined symbol: _objc_msgSend$currencyCode Undefined symbol: _objc_msgSend$customAdPosition Undefined symbol: _kGADAdSizeSmartBannerPortrait Undefined symbol: _objc_msgSend$frame Undefined symbol: _objc_msgSend$bannerView Undefined symbol: _objc_msgSend$bannerClient Undefined symbol: _objc_msgSend$adaptiveAdSizeForWidth:orientation: Undefined symbol: _objc_msgSend$adSizeForWidth:height: Undefined symbol: _objc_msgSend$interstitialClient Undefined symbol: _objc_msgSend$initWithBannerClientReference:adUnitID:adSize:adPosition: Undefined symbol: _objc_msgSend$setAppEventDelegate: Undefined symbol: _objc_msgSend$adWillPresentFullScreenContentCallback Undefined symbol: _objc_msgSend$adDidDismissFullScreenContentCallback Undefined symbol: _objc_msgSend$setAdFailedToLoadCallback: Undefined symbol: _objc_msgSend$presentFromRootViewController: Undefined symbol: _objc_msgSend$adFailedToPresentFullScreenContentCallback Undefined symbol: _objc_msgSend$adFailedToLoadCallback Undefined symbol: _objc_msgSend$paidEventCallback Undefined symbol: _objc_msgSend$allKeys Undefined symbol: OBJC_CLASS$_GADAppOpenAd Undefined symbol: _objc_msgSend$cStringUsingEncoding: Undefined symbol: _objc_msgSend$setAppOpenAd: Undefined symbol: _objc_msgSend$setInterstitialAdGAM: Undefined symbol: _objc_msgSend$request Undefined symbol: _objc_msgSend$setFullScreenContentDelegate: Undefined symbol: _objc_msgSend$adReceivedCallback Undefined symbol: _objc_msgSend$testDeviceIdentifiers Undefined symbol: _objc_msgSend$appOpenAd Undefined symbol: _objc_msgSend$setPaidEventHandler: Undefined symbol: _objc_msgSend$setDelegate: Undefined symbol: _objc_msgSend$appOpenAdClient Undefined symbol: _objc_msgSend$rewardedInterstitialAdClient Undefined symbol: _objc_msgSend$didDismissCallback Undefined symbol: _objc_msgSend$loadWithAdUnitID:request:orientation:completionHandler: Undefined symbol: OBJC_CLASS$_GADBannerView Undefined symbol: _GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth Undefined symbol: _GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth Undefined symbol: _objc_msgSend$show Undefined symbol: _objc_msgSend$adDidRecordImpressionCallback Undefined symbol: _objc_msgSend$window Undefined symbol: _GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth Undefined symbol: _objc_msgSend$setCustomTargetingWithKey:value: Undefined symbol: _GADAdSizeFullWidthPortraitWithHeight Undefined symbol: _objc_msgSend$positionView:inParentView:customPosition: Undefined symbol: _objc_msgSend$setCenter: Undefined symbol: _kGADAdSizeSmartBannerLandscape Undefined symbol: _GADAdSizeEqualToSize Undefined symbol: _CGSizeFromGADAdSize Undefined symbol: _objc_msgSend$isOperatingSystemAtLeastVersion: Undefined symbol: _objc_msgSend$safeAreaLayoutGuide Undefined symbol: _objc_msgSend$positionBannerView Undefined symbol: _objc_msgSend$loadFormWithCompletionHandler: Undefined symbol: _objc_msgSend$initWithConsentFormClientReference: Undefined symbol: _objc_msgSend$setObject:forKey: Undefined symbol: _objc_msgSend$willPresentCallback Undefined symbol: _objc_msgSend$reset Undefined symbol: _objc_msgSend$isConsentFormAvailable Undefined symbol: _objc_msgSend$requestConsentInfoUpdateWithParameters:completionHandler: Undefined symbol: _objc_msgSend$setDebugSettings: Undefined symbol: _objc_msgSend$adReward Undefined symbol: _GADAdSizeFromCGSize Undefined symbol: OBJC_CLASS$_GADServerSideVerificationOptions Undefined symbol: _objc_msgSend$code Undefined symbol: OBJC_CLASS$_GADMobileAds Undefined symbol: _objc_msgSend$adUnitMapping Undefined symbol: _objc_msgSend$adSourceID Undefined symbol: _objc_msgSend$value Undefined symbol: _GADErrorUserInfoKeyResponseInfo Undefined symbol: _objc_msgSend$localizedDescription
0
0
481
Feb ’24
Apple developer account creation delay
Hi there, Hope you're all doing great. It's been a while since we've submitted a request for an Apple Developer Enterprise Account creation. Until today, no email was received and it's showing since a week now that thy're still procession the request. We've sent an email to the Support Team but no response till today. we don't know if there's any issue with the data submited. What else can we do? How much time do they generally take to process account creation request? Thanks
0
0
483
Feb ’24
Payment problem & For 4 months the Apple Payment team has not responded to emails
Hello everyone For a year now my partner and I have been having problems receiving payment from Apple. For a whole year we have been writing letters to the mail and not getting a constructive and clear answer. For the last 4 months we have stopped receiving any answers at all. Can you tell me who has had problems with Apple ignoring our letters? What to do in such a case
0
0
488
Feb ’24
Captive portal detection
Hi Team, I have been working on an application that includes a Network Extension. I wanted to disable it if a captive portal is detected over the network. I have tried different approaches to detect it, including the standard approach outlined in the following document: https://datatracker.ietf.org/doc/html/draft-ietf-capport-api, using the URL https://captive.apple.com/hotspot-detect.html. However, none of these methods seem to be working. Additionally, the kSCNetworkReachabilityFlagsConnectionRequired flag is not being flagged when under a captive network. Could you please assist with this issue? Thank you.
1
0
757
Mar ’24
LLVM Profile Error
My app encountered this error, but I did not use any decompilation project, monkey, etc., and this error occurs occasionally.Has anyone ever encountered a similar error? LLVM Profile Error: Failed to write file "default.profraw": Operation not permitted
0
0
552
Mar ’24
[MDM] Enterprise and VPP application installs do not work
Hello, I am currently testing the com.apple.configuration.app.managed declaration, and have failed to get it to work with either VPP OR Enterprise apps. (Testing is being conducted on an iPhone XR with iOS 17.3.1) VPP: Initially errors where returned due to not having a license for the device, so I have set it up to fetch a license before the declaration is return to the device. Said declaration is as follows (I have attempted to switch from Device to User VPP type, as well as attempting to use BundleID or AppStoreID but all have the same result: { "Identifier": "BBC_Test_Install", "Payload": { "AppStoreID": "377382255", "InstallBehavior": { "Install": "Required", "License": { "VPPType": "Device" } } }, "ServerToken": "...", "Type": "com.apple.configuration.app.managed" } The configuration above successfully applies on to the device, and can be seen in the configurations tab in Settings. The install is unsuccessful however, as the app.managed subscription item returns the following result: "app" : { "managed" : { "list" : [ { "state" : "failed", "declaration-identifier" : "BBC_Test_Install", "identifier" : "uk.co.bbc.newsuk", "name" : "BBC News - UK & World Stories" } ] } } The device does not provide any additional information, it was initially returning the following reason when I did not request a licence before the install: "code" : "Error.LicenseNotFound" but this has disappeared now that a licence is requested before hand. No other information can be gleaned so I am at a bit of a loss. It should be noted, I am wipping my device between each test, just to try and get it working on a "fresh" application before attempting to deal with updating the declaration. Enterprise: This also does not seem to be behave, the configuration states a successful application, but it cant be seen in the declrations tab within general settings: "active" : true, "identifier" : "Enterprise_Test_Install", "valid" : "valid", "server-token" : "..." The associated configuration is as follows: { "Identifier": "Enterprise_Test_Install", "Payload": { "InstallBehavior": { "Install": "Required" }, "ManifestURL": "https://my.domain/web/mdm/ios/enterpriseplistgenerator/bundle.id" }, "ServerToken": "...", "Type": "com.apple.configuration.app.managed" } I have had previous success installing enterprise apps through MDM commands so I would have assumed the ManifestURL should have worked the same. The above URL does cause the device to make a secondary request for the application manifest, which returns the following: <?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>https://my.domain/web/mdm/ios/enterpriseipa/bundle.id</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>bundle.id</string> <key>kind</key> <string>software</string> <key>subtitle</key> <string>testapp</string> <key>title</key> <string>testapp</string> </dict> </dict> </array> </dict> </plist> Which the device then does nothing with (app.managed does not report back anything). When installing the enterprise app through MDM commands the above plist does cause the device to make a secondary call to fetch the applications IPA. Some additional information, help, or insight would be useful, as from my perspective the declaration does not seem to work at all.
2
0
761
Mar ’24
ld: warning: ignoring file, found architecture 'arm64', required architecture 'x86_64'
gcc -I/opt/homebrew/opt/postgresql@15/include -I/opt/homebrew/Cellar/openssl@3/3.2.1/include -fPIC -c -o pkg/publisher/pg/clibpq/copy.o pkg/publisher/pg/clibpq/copy.c gcc -shared -L/opt/homebrew/opt/postgresql@15/lib -lpq -o pkg/publisher/pg/clibpq/libcopy.so pkg/publisher/pg/clibpq/copy.o ld: warning: ignoring file '/opt/homebrew/Cellar/postgresql@15/15.6_1/lib/libpq.5.15.dylib': found architecture 'arm64', required architecture 'x86_64' ld: Undefined symbols: _PQclear, referenced from: _copy_table_data in copy.o _copy_table_data in copy.o _copy_table_data in copy.o _start_copy_origin_tx in copy.o _start_copy_origin_tx in copy.o _start_copy_target_tx in copy.o _finish_copy_origin_tx in copy.o ... clang: error: linker command failed with exit code 1 (use -v to see invocation)
2
0
1.3k
Mar ’24
install_name_tool vs. codesign
I have a shell script that turns a framework into a plain dylib and updates some dependent library paths using install_name_tool. It works, but if the framework was signed, I get warnings like: install_name_tool: warning: changes being made to the file will invalidate the code signature in: [redacted].dylib (for architecture x86_64) I thought I could get rid of the warning by adding codesign --remove-signature dylib-path to the script before using install_name_tool, but then I get errors like install_name_tool: fatal error: file not in an order that can be processed (link edit information does not fill the __LINKEDIT segment): [redacted].dylib (for architecture x86_64) Is there a way to fix this?
1
0
1.2k
Mar ’24