Hello, I need a little bit of help. My game keeps crashing on launch no matter what I do. I’ve tried running it in Xcode on my Mac, on my iPhone, and through TestFlight, but I get the same result every time.
I’ve tried everything I could find on the internet, and nothing worked. Asking here is my last resort because I’m completely stuck.
The game runs fine in Unity, but not so much in Xcode.
Can someone help me figure out what I’m doing wrong?Any help would be greatly appreciated.
Here is the error log I found by connecting my iPhone to my Mac. To view the logs, I used the Console in the Devices and Simulators section of Xcode.
➤ SecKeyVerifySignature failed: Error Domain=NSOSStatusErrorDomain Code=-50 "rsa_pub_crypt failed"
[10:27:36.034791+0200] kernel
➤ Sandbox: [App] deny(1) sysctl-read kern.bootargs
[10:27:36.043389+0200] SpringBoard
➤ Live host view super view[(null)] not matching container view
➤ Frame not updated
[10:27:36.050473+0200] backboardd
➤ Cycle detected
[10:27:36.100799+0200] SpringBoard
➤ Live host view super view[(null)] not matching container view
[10:27:36.538361+0200] akd
➤ Error fetching keychain item - Error Domain=NSOSStatusErrorDomain Code=-25300 "no matching items found"
[10:27:36.545734+0200] akd
➤ Failed to set last known MID with error (Error Domain=NSOSStatusErrorDomain Code=-25300)
[10:27:36.603384+0200] rtcreportingd
➤ Gap in hierarchy:
[10:27:36.604536+0200] cloudd
➤ TCP input flags=[R.] state=LAST_ACK
[10:27:36.613317+0200] cloudd
➤ TCP input flags=[R] state=CLOSED
[10:27:36.648449+0200] kernel
➤ 1 duplicate report for Sandbox: [App] deny(1) sysctl-read kern.bootargs
[10:27:36.648484+0200] kernel
➤ Sandbox: [App] deny(1) file-test-existence /private/var/Managed Preferences/mobile/com.apple.CoreMotion.plist
[10:27:36.900275+0200] CommCenter
➤ Client is not entitled for request
[10:27:37.131555+0200] storekitd
➤ AMSURLSession: Session decoder failed. Error = Error Domain=AMSErrorDomain Code=301 "Invalid Status Code"
[10:27:37.131761+0200] storekitd
➤ AMSURLSession: Task completed with error = Error Domain=AMSErrorDomain Code=301 "Invalid Status Code"
[10:27:38.137847+0200] kernel
➤ System Policy: [Process] deny(1) file-read-metadata /private/var/mobile/Library/Biome/FlexibleStorage
[10:27:38.779536+0200] kernel
➤ Sandbox: [App] deny(2) file-test-existence /private/etc/localtime
[10:27:38.942342+0200] mobileassetd
➤ TCP input flags=[R] state=LAST_ACK
[10:27:38.963596+0200] kernel
➤ Sandbox: [App] deny(2) file-test-existence /bin/bash
[10:27:40.152019+0200] mobileassetd
➤ TCP input flags=[R] state=LAST_ACK
[10:27:40.280661+0200] assetsd
➤ Warning: cache_handle_memory_pressure invokedPreformatted text```
General
RSS for tagDive into the vast array of tools and services available to developers.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Apple’s library technology has a long and glorious history, dating all the way back to the origins of Unix. This does, however, mean that it can be a bit confusing to newcomers. This is my attempt to clarify some terminology.
If you have any questions or comments about this, start a new thread and tag it with Linker so that I see it.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
An Apple Library Primer
Apple’s tools support two related concepts:
Platform — This is the platform itself; macOS, iOS, iOS Simulator, and Mac Catalyst are all platforms.
Architecture — This is a specific CPU architecture used by a platform. arm64 and x86_64 are both architectures.
A given architecture might be used by multiple platforms. The most obvious example of this arm64, which is used by all of the platforms listed above.
Code built for one platform will not work on another platform, even if both platforms use the same architecture.
Code is usually packaged in either a Mach-O file or a static library. Mach-O is used for executables (MH_EXECUTE), dynamic libraries (MH_DYLIB), bundles (MH_BUNDLE), and object files (MH_OBJECT). These can have a variety of different extensions; the only constant is that .o is always used for a Mach-O containing an object file. Use otool and nm to examine a Mach-O file. Use vtool to quickly determine the platform for which it was built. Use size to get a summary of its size. Use dyld_info to get more details about a dynamic library.
IMPORTANT All the tools mentioned here are documented in man pages. For information on how to access that documentation, see Reading UNIX Manual Pages. There’s also a Mach-O man page, with basic information about the file format.
Many of these tools have old and new variants, using the -classic suffix or llvm- prefix, respectively. For example, there’s nm-classic and llvm-nm. If you run the original name for the tool, you’ll get either the old or new variant depending on the version of the currently selected tools. To explicitly request the old or new variants, use xcrun.
The term Mach-O image refers to a Mach-O that can be loaded and executed without further processing. That includes executables, dynamic libraries, and bundles, but not object files.
A dynamic library has the extension .dylib. You may also see this called a shared library.
A framework is a bundle structure with the .framework extension that has both compile-time and run-time roles:
At compile time, the framework combines the library’s headers and its stub library (stub libraries are explained below).
At run time, the framework combines the library’s code, as a Mach-O dynamic library, and its associated resources.
The exact structure of a framework varies by platform. For the details, see Placing Content in a Bundle.
macOS supports both frameworks and standalone dynamic libraries. Other Apple platforms support frameworks but not standalone dynamic libraries.
Historically these two roles were combined, that is, the framework included the headers, the dynamic library, and its resources. These days Apple ships different frameworks for each role. That is, the macOS SDK includes the compile-time framework and macOS itself includes the run-time one. Most third-party frameworks continue to combine these roles.
A static library is an archive of one or more object files. It has the extension .a. Use ar, libtool, and ranlib to inspect and manipulate these archives.
The static linker, or just the linker, runs at build time. It combines various inputs into a single output. Typically these inputs are object files, static libraries, dynamic libraries, and various configuration items. The output is most commonly a Mach-O image, although it’s also possible to output an object file. The linker may also output metadata, such as a link map (see Using a Link Map to Track Down a Symbol’s Origin).
The linker has seen three major implementations:
ld — This dates from the dawn of Mac OS X.
ld64 — This was a rewrite started in the 2005 timeframe. Eventually it replaced ld completely. If you type ld, you get ld64.
ld_prime — This was introduced with Xcode 15. This isn’t a separate tool. Rather, ld now supports the -ld_classic and -ld_new options to select a specific implementation.
Note During the Xcode 15 beta cycle these options were -ld64 and -ld_prime. I continue to use those names because the definition of new changes over time (some of us still think of ld64 as the new linker ;–).
The dynamic linker loads Mach-O images at runtime. Its path is /usr/lib/dyld, so it’s often referred to as dyld, dyld, or DYLD. Personally I pronounced that dee-lid, but some folks say di-lid and others say dee-why-el-dee.
IMPORTANT Third-party executables must use the standard dynamic linker.
Other Unix-y platforms support the notion of a statically linked executable, one that makes system calls directly. This is not supported on Apple platforms. Apple platforms provide binary compatibility via system dynamic libraries and frameworks, not at the system call level.
Note Apple platforms have vestigial support for custom dynamic linkers (your executable tells the system which dynamic linker to use via the LC_LOAD_DYLINKER load command). This facility originated on macOS’s ancestor platform and has never been a supported option on any Apple platform.
The dynamic linker has seen 4 major revisions. See WWDC 2017 Session 413 (referenced below) for a discussion of versions 1 through 3. Version 4 is basically a merging of versions 2 and 3.
The dyld man page is chock-full of useful info, including a discussion of how it finds images at runtime.
Every dynamic library has an install name, which is how the dynamic linker identifies the library. Historically that was the path where you installed the library. That’s still true for most system libraries, but nowadays a third-party library should use an rpath-relative install name. For more about this, see Dynamic Library Identification.
Mach-O images are position independent, that is, they can be loaded at any location within the process’s address space. Historically, Mach-O supported the concept of position-dependent images, ones that could only be loaded at a specific address. While it may still be possible to create such an image, it’s no longer a good life choice.
Mach-O images have a default load address, also known as the base address. For modern position-independent images this is 0 for library images and 4 GiB for executables (leaving the bottom 32 bits of the process’s address space unmapped). When the dynamic linker loads an image, it chooses an address for the image and then rebases the image to that address. If you take that address and subtract the image’s load address, you get a value known as the slide.
Xcode 15 introduced the concept of a mergeable library. This a dynamic library with extra metadata that allows the linker to embed it into the output Mach-O image, much like a static library. Mergeable libraries have many benefits. For all the backstory, see WWDC 2023 Session 10268 Meet mergeable libraries. For instructions on how to set this up, see Configuring your project to use mergeable libraries.
If you put a mergeable library into a framework structure you get a mergeable framework.
Xcode 15 also introduced the concept of a static framework. This is a framework structure where the framework’s dynamic library is replaced by a static library.
Note It’s not clear to me whether this offers any benefit over creating a mergeable framework.
Earlier versions of Xcode did not have proper static framework support. That didn’t stop folks trying to use them, which caused all sorts of weird build problems.
A universal binary is a file that contains multiple architectures for the same platform. Universal binaries always use the universal binary format. Use the file command to learn what architectures are within a universal binary. Use the lipo command to manipulate universal binaries.
A universal binary’s architectures are either all in Mach-O format or all in the static library archive format. The latter is called a universal static library.
A universal binary has the same extension as its non-universal equivalent. That means a .a file might be a static library or a universal static library.
Most tools work on a single architecture within a universal binary. They default to the architecture of the current machine. To override this, pass the architecture in using a command-line option, typically -arch or --arch.
An XCFramework is a single document package that includes libraries for any combination of platforms and architectures. It has the extension .xcframework. An XCFramework holds either a framework, a dynamic library, or a static library. All the elements must be the same type. Use xcodebuild to create an XCFramework. For specific instructions, see Xcode Help > Distribute binary frameworks > Create an XCFramework.
Historically there was no need to code sign libraries in SDKs. If you shipped an SDK to another developer, they were responsible for re-signing all the code as part of their distribution process. Xcode 15 changes this. You should sign your SDK so that a developer using it can verify this dependency. For more details, see WWDC 2023 Session 10061 Verify app dependencies with digital signatures and Verifying the origin of your XCFrameworks.
A stub library is a compact description of the contents of a dynamic library. It has the extension .tbd, which stands for text-based description (TBD). Apple’s SDKs include stub libraries to minimise their size; for the backstory, read this post. Use the tapi tool to create and manipulate stub libraries. In this context TAPI stands for a text-based API, an alternative name for TBD. Oh, and on the subject of tapi, I’d be remiss if I didn’t mention tapi-analyze!
Stub libraries currently use YAML format, a fact that’s relevant when you try to interpret linker errors. If you’re curious about the format, read the tapi-tbdv4 man page. There’s also a JSON variant documented in the tapi-tbdv5 man page.
Note Back in the day stub libraries used to be Mach-O files with all the code removed (MH_DYLIB_STUB). This format has long been deprecated in favour of TBD.
Historically, the system maintained a dynamic linker shared cache, built at runtime from its working set of dynamic libraries. In macOS 11 and later this cache is included in the OS itself. Libraries in the cache are no longer present in their original locations on disk:
% ls -lh /usr/lib/libSystem.B.dylib
ls: /usr/lib/libSystem.B.dylib: No such file or directory
Apple APIs, most notably dlopen, understand this and do the right thing if you supply the path of a library that moved into the cache. That’s true for some, but not all, command-line tools, for example:
% dyld_info -exports /usr/lib/libSystem.B.dylib
/usr/lib/libSystem.B.dylib [arm64e]:
-exports:
offset symbol
…
0x5B827FE8 _mach_init_routine
% nm /usr/lib/libSystem.B.dylib
…/nm: error: /usr/lib/libSystem.B.dylib: No such file or directory
When the linker creates a Mach-O image, it adds a bunch of helpful information to that image, including:
The target platform
The deployment target, that is, the minimum supported version of that platform
Information about the tools used to build the image, most notably, the SDK version
A build UUID
For more information about the build UUID, see TN3178 Checking for and resolving build UUID problems. To dump the other information, run vtool.
In some cases the OS uses the SDK version of the main executable to determine whether to enable new behaviour or retain old behaviour for compatibility purposes. You might see this referred to as compiled against SDK X. I typically refer to this as a linked-on-or-later check.
Apple tools support the concept of autolinking. When your code uses a symbol from a module, the compiler inserts a reference (using the LC_LINKER_OPTION load command) to that module into the resulting object file (.o). When you link with that object file, the linker adds the referenced module to the list of modules that it searches when resolving symbols.
Autolinking is obviously helpful but it can also cause problems, especially with cross-platform code. For information on how to enable and disable it, see the Build settings reference.
Mach-O uses a two-level namespace. When a Mach-O image imports a symbol, it references the symbol name and the library where it expects to find that symbol. This improves both performance and reliability but it precludes certain techniques that might work on other platforms. For example, you can’t define a function called printf and expect it to ‘see’ calls from other dynamic libraries because those libraries import the version of printf from libSystem.
To help folks who rely on techniques like this, macOS supports a flat namespace compatibility mode. This has numerous sharp edges — for an example, see the posts on this thread — and it’s best to avoid it where you can. If you’re enabling the flat namespace as part of a developer tool, search the ’net for dyld interpose to learn about an alternative technique.
WARNING Dynamic linker interposing is not documented as API. While it’s a useful technique for developer tools, do not use it in products you ship to end users.
Apple platforms use DWARF. When you compile a file, the compiler puts the debug info into the resulting object file. When you link a set of object files into a executable, dynamic library, or bundle for distribution, the linker does not include this debug info. Rather, debug info is stored in a separate debug symbols document package. This has the extension .dSYM and is created using dsymutil. Use symbols to learn about the symbols in a file. Use dwarfdump to get detailed information about DWARF debug info. Use atos to map an address to its corresponding symbol name.
Different languages use different name mangling schemes:
C, and all later languages, add a leading underscore (_) to distinguish their symbols from assembly language symbols.
C++ uses a complex name mangling scheme. Use the c++filt tool to undo this mangling.
Likewise, for Swift. Use swift demangle to undo this mangling.
For a bunch more info about symbols in Mach-O, see Understanding Mach-O Symbols. This includes a discussion of weak references and weak definition. If your code is referencing a symbol unexpectedly, see Determining Why a Symbol is Referenced.
To remove symbols from a Mach-O file, run strip. To hide symbols, run nmedit.
It’s common for linkers to divide an object file into sections. You might find data in the data section and code in the text section (text is an old Unix term for code). Mach-O uses segments and sections. For example, there is a text segment (__TEXT) and within that various sections for code (__TEXT > __text), constant C strings (__TEXT > __cstring), and so on.
Over the years there have been some really good talks about linking and libraries at WWDC, including:
WWDC 2023 Session 10268 Meet mergeable libraries
WWDC 2022 Session 110362 Link fast: Improve build and launch times
WWDC 2022 Session 110370 Debug Swift debugging with LLDB
WWDC 2021 Session 10211 Symbolication: Beyond the basics
WWDC 2019 Session 416 Binary Frameworks in Swift — Despite the name, this covers XCFrameworks in depth.
WWDC 2018 Session 415 Behind the Scenes of the Xcode Build Process
WWDC 2017 Session 413 App Startup Time: Past, Present, and Future
WWDC 2016 Session 406 Optimizing App Startup Time
Note The older talks are no longer available from Apple, but you may be able to find transcripts out there on the ’net.
Historically Apple published a document, Mac OS X ABI Mach-O File Format Reference, or some variant thereof, that acted as the definitive reference to the Mach-O file format. This document is no longer available from Apple. If you’re doing serious work with Mach-O, I recommend that you find an old copy. It’s definitely out of date, but there’s no better place to get a high-level introduction to the concepts. The Mach-O Wikipedia page has a link to an archived version of the document.
For the most up-to-date information about Mach-O, see the declarations and doc comments in <mach-o/loader.h>.
Revision History
2025-08-04 Added a link to Determining Why a Symbol is Referenced.
2025-06-29 Added information about autolinking.
2025-05-21 Added a note about the legacy Mach-O stub library format (MH_DYLIB_STUB).
2025-04-30 Added a specific reference to the man pages for the TBD format.
2025-03-01 Added a link to Understanding Mach-O Symbols. Added a link to TN3178 Checking for and resolving build UUID problems. Added a summary of the information available via vtool. Discussed linked-on-or-later checks. Explained how Mach-O uses segments and sections. Explained the old (-classic) and new (llvm-) tool variants. Referenced the Mach-O man page. Added basic info about the strip and nmedit tools.
2025-02-17 Expanded the discussion of dynamic library identification.
2024-10-07 Added some basic information about the dynamic linker shared cache.
2024-07-26 Clarified the description of the expected load address for Mach-O images.
2024-07-23 Added a discussion of position-independent images and the image slide.
2024-05-08 Added links to the demangling tools.
2024-04-30 Clarified the requirement to use the standard dynamic linker.
2024-03-02 Updated the discussion of static frameworks to account for Xcode 15 changes. Removed the link to WWDC 2018 Session 415 because it no longer works )-:
2024-03-01 Added the WWDC 2023 session to the list of sessions to make it easier to find. Added a reference to Using a Link Map to Track Down a Symbol’s Origin. Made other minor editorial changes.
2023-09-20 Added a link to Dynamic Library Identification. Updated the names for the static linker implementations (-ld_prime is no more!). Removed the beta epithet from Xcode 15.
2023-06-13 Defined the term Mach-O image. Added sections for both the static and dynamic linkers. Described the two big new features in Xcode 15: mergeable libraries and dependency verification.
2023-06-01 Add a reference to tapi-analyze.
2023-05-29 Added a discussion of the two-level namespace.
2023-04-27 Added a mention of the size tool.
2023-01-23 Explained the compile-time and run-time roles of a framework. Made other minor editorial changes.
2022-11-17 Added an explanation of TAPI.
2022-10-12 Added links to Mach-O documentation.
2022-09-29 Added info about .dSYM files. Added a few more links to WWDC sessions.
2022-09-21 First posted.
I am trying to get my app deployed to an iOs device (iphone 14) from Visual Studio on Windows 11. If the device I am trying to deploy to is included in https://developer.apple.com/account/resources/devices/list then I see below error in Visual Studio logs.
Xamarin.Messaging.IDB.AppleProvisioningManager Error: 0 : Xamarin.MacDev.AppleSigning.AppleServerException: A device with number '0000xxxx-0014093926Bxxxx' already exists on this team.
at Xamarin.MacDev.AppleSigning.AppStoreDeveloperPortal.d__42.MoveNext() in D:\a_work\1\s\External\maciostools\Xamarin.MacDev.AppleSigning\AppleDeveloperPortal\AppStoreDeveloperPortal.cs:line 913
If I disable it I see below error in Visual Studio logs:
Xamarin.Messaging.Client.MessagingClient Error: 0 : An error occurred on the receiver while executing a post for topic xvs/idb/auto-provision and client vs26896sv3
Xamarin.Messaging.Exceptions.MessagingRemoteException: An error occurred on client xxxxxxx while executing a reply for topic xvs/idb/auto-provision ---> Newtonsoft.Json.JsonSerializationException: Error converting value {null} to type 'System.DateTime'. Path 'data.attributes.addedDate', line 6, position 24
I am seeing no option to completely remove the device from the list. How can this issue be fixed?
Topic:
Developer Tools & Services
SubTopic:
General
I am developing an Augmented Reality (AR) navigation application for the iPad, utilizing the ARCL library to place Points of Interest (POIs) in the real world.
The application's behavior varies significantly based on the device's networking configuration:
Cellular Network (Expected Behavior): On an iPad with a cellular modem, when using the cellular network, all POIs are placed accurately with correct orientation.
Wi-Fi Only (Expected Behavior): On a Wi-Fi-only model (no GPS chip), POI placement is inaccurate, confirming the need for an external GPS receiver for that hardware configuration.
Cellular + Wi-Fi (Anomalous Behavior):
The iPad is a cellular model (equipped with GNSS/GPS).
The device is connected to a Wi-Fi network (enforced via an MDM profile, preventing the user from disabling Wi-Fi).
When actively connected to this specific Wi-Fi network, the AR POIs consistently display with an incorrect orientation and placement, even though the device hardware has a dedicated GPS chip. The placement error strongly suggests that the device's determined location or heading is erroneous. It appears that the active Wi-Fi connection is somehow interfering with or overriding the high-accuracy GNSS/GPS data, leading to a flawed Core Location determination that negatively impacts the ARCL world tracking and anchor placement.
Has anyone experienced a scenario where an active Wi-Fi connection on a cellular iPad model causes Core Location to prioritize less accurate location data (potentially Wi-Fi-based location services) over the device's built-in GNSS/GPS, resulting in severe orientation errors? We observed that on Apple map(native application) as well it is showing wrong location and orientation when it is connected to WiFi
How can I allow the popup I am encountering while I run my UI tests with video recording in the Github actions.
Since these tests are running on VMs, it's not possible to manually click Allow. Also the remote robot cannot interact with OS-level dialogs.
We're having issues getting Sign in with Google to function on TestFlight (not experiencing these issues on iOS Browser) with user unable to be authorised and proceed to logged in screens of our app.
Below are the three sign-in methods tested and the exact results for each.
Button 1: Default
Standard Google Sign-In button (Google JavaScript SDK) embedded in the frontend.
Uses the normal OAuth browser redirect flow.
Auth URL: https://accounts.google.com/o/oauth2/v2/auth?...
Sometimes disallowed_useragent error.
Other times a 400 invalid_request error.
In most cases the callback is never triggered inside the wrapper.
Appears that the wrapper does not retain cookies/session data from the external Google window.
Button 2: Custom
Custom button calling Google OAuth through our own redirect handler.
Explicitly set a custom user-agent to bypass disallowed user agent logic.
Later removed user-agent override entirely for testing.
Added multiple ATS (App Transport Security) exceptions for Google domains.
Added custom URL scheme to Info.plist for OAuth redirect.
Changing the user-agent had no effect.
ATS exceptions + scheme support verified and working.
Redirect still fails to propagate tokens back to the WebView.
In tests a few weeks ago we got to Google’s login page, but it never returned to the app with a valid code. Now
we are consistently getting disallowed_useragent error.
Button 3: Default
Same as Button 1 however tested outside of Vue.js with just plain JavaScript.
Added new Google domain exceptions and updated redirect URIs.
Behaviour matches Button 1
Google account selection sometimes worked, however now consitently disallowed_useragent error
Additional Technical Attempts
User-Agent Modifications
Set UA to standard desktop Chrome → no effect.
Removed UA override → no effect.
ATS / Domain / Scheme Configuration
Added:
accounts.google.com
.googleusercontent.com
*.googleapis.com
I have an issue when i use external tester with a public link and emails.
Test fly is well installed but when i have to open the app, it just charge as seen in the screen.
Hi,
I am using Installer JS in Distrtibution file which is created using productbuild command. I am trying to read the installed version of app from the plist file present in the /var/db/receipts folder. It gives the following warning. If I enable the flag , notarization will fail.
FJS: Package Authoring Error: access to path "/var/db/receipts/com.xxx.xxx.plist" requires
Following is the function I have used to read the installed version.
system.files.plistAtPath()
I have also tried the following function to read the version from .app file.
system.files.bundleAtPath
Both the functions give the warning.
Is there are a way to avoid this warning or a better way to read the installed version?
Regards
Prema Kumar
Hi, I’m currently developing a watchOS app and ran into an issue where I can’t enable Developer Mode on my Apple Watch.
Device info:
Apple Watch Series 9 (watchOS 10.4)
Paired with iPhone 14 Pro (iOS 17.4.1)
Xcode 15.3 (macOS 15.5, Apple Silicon)
Issue:
When I try to run the app on my physical watch device, Xcode prompts that Developer Mode needs to be enabled. However, there is no approval request on the Apple Watch, and no Developer Mode option appears under Settings → Privacy & Security.
I’ve already tried the following:
Rebooting both devices
Unpairing and re-pairing the watch
Erasing and setting up the watch again
Signing out and back into my Apple ID
Using the latest Xcode version (15.3 and 16.3 both tested)
Running clean builds and checking provisioning profiles
Attempting install via both simulator and physical device
Still no luck — the app will not launch on the Apple Watch due to Developer Mode being disabled, and the option is missing entirely from Settings.
I visited an Apple Store Genius Bar, but they couldn’t help and told me to contact Developer Support. I’ve already submitted a support request, but in the meantime I wanted to ask here in case anyone else has experienced this and found a workaround.
Thanks in advance.
Weirdness going on here. Our app is crashing on startup with iPad 7s running iOS 18.5. Before updating to iOS 18.5, it was working fine on iPad 7s. Even with iOS 18.5, it is working fine on every device we have tried including dozens of other iPads and iPhones. We have narrowed it down to the SquareReaderSDK. If we remove that SDK, it will launch and work without issues. But, many of our users need the SquareReaderSDK.
The crash happens at app load, before appDelegate didFinishLaunchingWithOptions. So we can't figure out any way to debug the issue. Is anyone else having a similar issue? Square thinks it is an Apple issue.
Topic:
Developer Tools & Services
SubTopic:
General
Apologies if this isn't tagged right but dev tools and services seemed the most appropriate since this is related to the workbench Ad Tester tool. I'm seeing a behavior where the preview link is not being generated. Specifically, I am seeing a POST request to the following URL consistently fail:
https://iadworkbench.apple.com/adtester/api/v1/ads/previewLink?orgId=1127861
Variations/scenarios I have tried so far:
All possible ad format choices on all possible devices
All options for the placement type
Both third party and uploaded creative sources
Uploaded creative sources appear to be failing to upload as well
A simple div with a "hello world" content fails as a third party creative source
Multiple apple accounts
I created a new account specifically to test if my primary apple ID was experiencing issues with this
Multiple browsers
I have tried multiple versions of Chrome/Firefox/Safari
I tested with and without browser extensions to determine whether an extension was interfering or not
Clearing session/local storage along with cookies
I also created new profiles in browsers to verify that I was getting a fresh browser environment
In all of these cases, the API request to generate a preview link is consistently failing with a 500 error code. It's worth noting that the web preview option works, but this isn't a truly accurate test environment and can't be solely relied on when testing ad content.
I don't know exactly when this started happening as I have not used it in the last couple of weeks but I have used the workbench ad tester extensively in the past the same way I have been trying with my current test without issue. That coupled with the fact that the request for the preview link consistently fails in all of the test scenarios I've outlined above leads me to believe there is a problem with the API that is responsible for generating the preview links.
Up to now I've been building my x64 binaries on Sequioa specifying a target macOS level of 13.4. That worked fine.
In an attempt to debug a problem that was causing some pain I created a 13.4 x64 build environment and tried to build the code there.
This code:
using CacheKeyType = std::filesystem::path;
using CacheValueType = std::tuple<LoadedImage, int, bool>; // <image, lastUse, currentlyLoading>
using CacheType = std::unordered_map<CacheKeyType, CacheValueType>;
friend class ThreadLoader;
static inline constexpr int16_t MAXIMAGESINCACHE = 20;
static inline constinit std::atomic_int age{ 0 };
static inline std::shared_mutex rwMutex{};
static inline CacheType imageCache{};
got me the following errors:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__hash_table:838:5: error: static_assert failed due to requirement 'integral_constant<bool, false>::value' "the specified hash does not meet the Hash requirements"
static_assert(__check_hash_requirements<_Key, _Hash>::value,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__hash_table:853:1: note: in instantiation of template class 'std::__enforce_unordered_container_requirements<std::filesystem::path, std::hash<std::filesystem::path>, std::equal_to<std::filesystem::path>>' requested here
typename __enforce_unordered_container_requirements<_Key, _Hash, _Equal>::type
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/unordered_map:1152:30: note: while substituting explicitly-specified template arguments into function template '__diagnose_unordered_container_requirements'
static_assert(sizeof(__diagnose_unordered_container_requirements<_Key, _Hash, _Pred>(0)), "");
^
/Users/amonra/.vs/DSS/build/DeepSkyStackerKernel/DeepSkyStackerKernel_autogen/EWIEGA46WW/../../../../DeepSkyStackerKernel/imageloader.h:60:26: note: in instantiation of member function 'std::unordered_map<std::filesystem::path, std::tuple<LoadedImage, int, bool>>::~unordered_map' requested here
static inline CacheType imageCache{};
^
2 errors generated.
Which isn't "mega-helpful" :(
I thought that specifying:
set(CMAKE_OSX_DEPLOYMENT_TARGET 13.4 CACHE STRING "Minimum operating system version for deployment" FORCE)
would have made the compilations use the same headers as for Ventura above, but it seems not?
Is this to be expected?
Topic:
Developer Tools & Services
SubTopic:
General
Hi all, I have set up a trivial test project to try Apple-hosted background assets following the instructions in the three articles at https://developer.apple.com/documentation/backgroundassets.
When I run the local mock server with xcrun ba-serve and set the URL override in Settings as described in the "Testing asset packs locally" article, I am able to download a test pack on my iOS devices. On the Mac that I use to run the mock server, however, the same call to AssetPackManager.shared.assetPack(withID: "TestAssetPack") that works on iOS always reports
The asset pack with the ID “TestAssetPack” couldn’t be looked up: No asset pack with the ID “TestAssetPack” was found.
even when not running the mock server, which led me to believe that it may not be hitting it at all. In fact, the macOS app will download asset packs uploaded to App Store Connect even when running the local server and setting the xcrun ba-serve url-override to the exact same string as in Settings on iOS. My initial suspicion was that something is wrong with the URL override, so I have tried all combinations of the Mac's hostname, IP address or "localhost" (with the corresponding SSL certificates) with and without port 443, always prefixing with "https://" for the url-override. All the same.
Does anyone have an idea what may be the issue here?
My asset pack has the following manifest:
{
"assetPackID": "TestAssetPack",
"downloadPolicy": {
"onDemand": {}
},
"fileSelectors": [
{
"file": "TestAsset.txt"
}
],
"platforms": [
"iOS",
"macOS"
]
}
I am running v26.1 for macOS, iOS & Xcode.
Edit:
Just to be clear, my assumption here is that the URL overrides (in Settings on iOS or via ba-serve on macOS) is what should cause the app to hit the mock server. Is that correct or am I missing something?
I have two feedbacks now where I’ve been requested additional info, and provided it, but the feedback still has an “unread” dot, and is still in the “Requests” folder. I’ve asked multiple times to clear this status in one of those feedbacks (FB14888965), but got no response.
Not the end of the world as long as the engineers are notified, but iirc the dot would disappear as soon as I replied.
Hi
Would someone happen to know how to solve the problem when installing Concorde.jl in julia:
(@v1.11) pkg> add Concorde
Resolving package versions...
No Changes to ~/.julia/environments/v1.11/Project.toml
No Changes to ~/.julia/environments/v1.11/Manifest.toml
Precompiling project...
✗ Concorde
0 dependencies successfully precompiled in 2 seconds. 238 already precompiled.
1 dependency errored.
For a report of the errors see julia> err. To retry use pkg> precompile
(@v1.11) pkg> build Concorde
Building Concorde → ~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/5d9f1b1a480235ffdd3c8ab8cab011aa9afe81af/build.log
ERROR: Error building Concorde, showing the last 100 of log:
x ./concorde/TOOLS/prob2tsp.c
x ./concorde/TOOLS/showres.c
...
x ./concorde/VERIFY/Makefile.in
x ./concorde/README
loading cache ./config.cache
checking host system type... Invalid configuration darwin': machine darwin' not recognized
checking for prespecified compiler options... no
checking for gcc... (cached) gcc
checking whether the C compiler (gcc -fPIC -O2 -g ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
ERROR: LoadError: failed process: Process(bash -c "CFLAGS='-fPIC -O2 -g' ./configure --with-qsopt=/Users/poss/.julia/packages/Concorde/VRfqN/deps/qsopt --host=darwin", ProcessExited(1)) [1]
It seems to be related to the M3 processor as I have the same error on another Mac with that processor, while the M2 I tried on could install the package properly.
It is related to my C compiler, but the latter works, despite the error "checking whether the C compiler (gcc -fPIC -O2 -g ) works... no"
poss@Mac-de-Michael ~ % gcc --version
Apple clang version 16.0.0 (clang-1600.0.26.6)
Target: arm64-apple-darwin24.1.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
poss@Mac-de-Michael ~ % gcc -fPIC -O2 -g test.c
Best,
Michaël.
Topic:
Developer Tools & Services
SubTopic:
General
I wanted to rollback a commit. So I shifted to the commit before it. Then I added new commits on the one I switched to, not realising this is not happening on the main branch.
Now what do I do?
Neerav
Crash dump:
`Crashed Thread: 0 tid_103 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGILL)
Exception Codes: KERN_PROTECTION_FAILURE at 0x000000016d3bfea0
Exception Codes: 0x0000000000000002, 0x000000016d3bfea0
Termination Reason: Namespace SIGNAL, Code 4 Illegal instruction: 4
Terminating Process: Unity [7873]
VM Region Info: 0x16d3bfea0 is in 0x169bbc000-0x16d3c0000; bytes after start: 58736288 bytes before end: 351
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
mapped file 169b00000-169ba8000 [ 672K] rw-/rwx SM=PRV Object_id=4d22156e
GAP OF 0x14000 BYTES
---> STACK GUARD 169bbc000-16d3c0000 [ 56.0M] ---/rwx SM=NUL stack guard for thread 0
Stack 16d3c0000-16dbbc000 [ 8176K] rw-/rwx SM=SHM thread 0
Thread 0 Crashed:: tid_103 Dispatch queue: com.apple.main-thread
0 libsystem_platform.dylib 0x1932ee7ac _platform_memset + 108
1 libmonobdwgc-2.0.dylib 0x33977abdc GC_clear_stack_inner + 60
2 libmonobdwgc-2.0.dylib 0x33977abf8 GC_clear_stack_inner + 88
3 libmonobdwgc-2.0.dylib 0x33977abf8 GC_clear_stack_inner + 88
4 libmonobdwgc-2.0.dylib 0x33977abf8 GC_clear_stack_inner + 88
5 libmonobdwgc-2.0.dylib 0x33977abf8 GC_clear_stack_inner + 88
6 libmonobdwgc-2.0.dylib 0x33977abf8 GC_clear_stack_inner + 88
7 libmonobdwgc-2.0.dylib 0x33977abf8 GC_clear_stack_inner + 88
8 libmonobdwgc-2.0.dylib 0x33977abf8 GC_clear_stack_inner + 88
9 libmonobdwgc-2.0.dylib 0x33977abf8 GC_clear_stack_inner + 88
10 libmonobdwgc-2.0.dylib 0x33977abf8 GC_clear_stack_inner + 88
11 libmonobdwgc-2.0.dylib 0x33977abf8 GC_clear_stack_inner + 88
12 libmonobdwgc-2.0.dylib 0x33976b518 GC_clear_stack + 76
13 libmonobdwgc-2.0.dylib 0x33973c074 mono_gc_alloc_obj + 112
14 libmonobdwgc-2.0.dylib 0x3396e0db4 mono_object_new_specific_checked + 72
15 libmonobdwgc-2.0.dylib 0x3396e116c ves_icall_object_new_specific + 28`
I added an Apple Watch app target for an iOS app. If I install it directly through Xcode it runs, however it seems to be able to communicate with iphone through Watch Connectivity framework and once I close the app it seems to uninstall itself from the watch. When I installed the iphone app frist, the app does not show up on the available apps on the iphone Watch application, what could be the issue ?
The iphone app was created using react native through expo.
Testing Devices
Iphone 13 pro max IOS 26.0.1 --- Apple Watch Series 4 WatchOS 10.6
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Watch Connectivity
WatchKit
watchOS
Apple Watch
Hi, I requested the https://itunes.apple.com/lookup?id=6482849843&country=us for getting the information of Goods puzzle sort challange , but the screenshotUrls in the response was empty. Is iTunes search API has issue with getting the screenshot urls ? Is there any plan to update it ?
Topic:
Developer Tools & Services
SubTopic:
General
Hello - I’m the Account Holder for an individual Apple Developer Program account. I’m working with freelance junior developers who are building my app in React Native mainly in TypeScript (.tsx) with some JavaScript, with code in GitHub. The app currently runs in Expo Go now.
I’ve been directed to this forum for step-by-step guidance. Specifically I need clear, sequential instructions I can give my developers (and what I personally must do on my Mac) so they can produce a properly signed iOS build for TestFlight (internal testing), and Upload that build to App Store Connect and then submit the release to the App Store.
Context:
This is an individual developer account (not an organization).
I am the only person with a Mac. I added them as developers but was told I need to be the one to upload the final build (is this true, and if so, what do they send me to do that, and when they send it to me, can you please tell me exactly what I need to do from there?)
I was told about Swift Playground, possible SwiftUI conversion if needed, APK file, and using my Xcode for final submission, but not sure what to make of this that will get it on TestFlight from the current React Native.
What I would like to ask for help with is a concise, step-by-step checklist (including exact menu names / commands or tools like EAS Submit, Transporter, or Xcode) of the developers' steps and my admin/account holder steps, so I can hand it to the developers and make sure nothing is missed to get on TestFlight.
I’m on a tight timeline, so any clear, detailed guidance would be extremely appreciated.
Thank you so much. I have looked everywhere and cannot find a step-by-step!