This page talks about the Feedback Assistant app for developers, and how it's the preferred way to submit feedback. But I didn't see anything obvious about how to get it. So I look for it in the app store. Nothing.About 5 minutes of searching brings me back to a well-hidden sentence on that page saying that it's on the home screen if you have a Beta version installed, but you can enable it on the publicly released versions by "installing a beta profile".I have no idea what that means. I can find no info on the web or the searching the developer site about how to "install a beta profile". I find instructions for installing Beta versions of iOS, but don't see anything about how to get the app without actually installing a beta OS.I did find a (sketchy as F...) website called betaprofiles.com <--- (don't click) that downloads and tries to install software on my Mac. (To which I said 'ell no). Seems an opportunist noticed this gaping vacuum that Apple created and stepped in to "fill it". I wonder how many people have gotten malware because of this lack of documentation.Sorry, frustrated as heck.OK, finally stumbled on the instructions in a MacWorld article. I guess I've started downloading "the profile", it will supposedly notify me when it's finished downloading, but I can't confirm that's actually happening. And I still don't even know what a "profile" is or what will happen if I "install" it.Seriously, this info should be easier to find. Searching these terms should bring up an informative article on apple.com at the top of the results, not some shady (AFAICT) malware site, and the best info being on MacWorld.
General
RSS for tagDive into the vast array of tools and services available to developers.
Post
Replies
Boosts
Views
Activity
My question set is fairly broad, but I can't seem to find any answers anywhere. As a fairly low-level developer, the vast majority of my work is done with Sublime Text, terminal-based compilers, IDEs like Coq's (coq.inria.fr), and code that has to be compiled by terminal.
These projects are at the very fabric of what I do, and I fear that Rosetta 2 will be inadequate until LLVM and other systems are updated to run natively on Apple Silicon. Honestly, I can't really afford complex virtualization systems like Parallels or VMWare (not that they help much) and I'd rather not give up MacOS for my Ubuntu desktop. I was raised on MacOS and I can't imagine losing features like scenes or seamless integration with the rest of my electronics.
I want to keep my initial post fairly simple and broad, but if anyone has any questions on what I need supported, feel free to ask. I am sure I'm not alone here.
As presented in the talks and documentation I’ve seen so far, DocC works for public and open Swift symbols. But how about stuff for internal use?
We are developing a fairly complex mixed source SDK with several components, that would benefit greatly from direct integration of auxiliary content for diagrams and so on. But since many of these parts are for internal use only, they have module or below level visibility.
Is there a way to build an internal documentation target that includes this information with DocC, and — if so — how?
I am trying to implement MetricKit so later I could analyze MXCrashDiagnostic and MXHangDiagnostic reports. However when I am triggering a test crash, Here is an example of what I get for MXCrashDiagnostic:
iente "timeStampEnd": "2021-06-07 15:59:00 +0000", "crashDiagnostics": [ { "version": "1.0.0", "callStackTree": { "callStacks": [ { "threadAttributed": true, "callStackRootFrames": [ { "binaryUUID": "DC2EACEA-3D9C-3409-96C2-2DF9C89AD19D", "offsetIntoBinaryTextSegment": 6917586944, "sampleCount": 1, "subFrames": [ { "binaryUUID": "DC2EACEA-3D9C-3409-96C2-2DF9C89AD19D", "offsetIntoBinaryTextSegment": 6917586944, "sampleCount": 1, "subFrames": [ { "binaryUUID": "DC2EACEA-3D9C-3409-96C2-2DF9C89AD19D", "offsetIntoBinaryTextSegment": 6917586944, "sampleCount": 1, "subFrames": [ { "binaryUUID": "35463E49-9534-3644-B993-2A73C287A143", "offsetIntoBinaryTextSegment": 4329963520, "sampleCount": 1, "binaryName": "demo", "address": 4333717704 }]
I tried to symbolicate the the data, by executing commands:
atos -arch arm64e -o /Users/***/Downloads/!dsym-4/demo.app.dSYM/Contents/Resources/DWARF/demo 4333717704
But I can't find the crash stack and the result returned is
4333717704
the DSYM file uuid is
UUID: 35463E49-9534-3644-B993-2A73C287A143 (arm64) /Users/***/Downloads/!dsym-3/demo.app.dSYM/Contents/Resources/DWARF/demo
How should the stack returned by MetrickIt be symbolized? Who can tell me very grateful
Hi,
My client has already developed an ios app and they need an enterprise account to publish the app. What are the procedures to create enterprise account?
The MAC device is a device that has been manually added to the Apple Business Manager.
DEP profiles are normally installed in both iOS and iPadOS.
Profile descript error occurs only when attempting DEP of MacOS.
(If you look at the picture, a decryption error occurs in the remote device registration step.)
I asked Apple's customer center about this problem,
and it is said that it is caused by the lack of a key called "automatic registration on the MDM server"
The key cannot be found in the Apple official document related to the profile below.
https://developer.apple.com/documentation/devicemanagement/mdm/
Information received during DEP enroll of Macmini using Apple silicon.
{
'LANGUAGE': 'en_US',
'PRODUCT': 'Macmini 9,1',
'SERIAL': 'CXXXXXXXXXXV',
'UDID': '0XXXXX27-XXXX-XXXX-XXXX-XZXXXXXXXXX',
'VERSION': '21C52'
}
Information received during DEP enroll of iPAD
{
'LANGUAGE': 'en_US',
'PRODUCT': 'iPad5,4',
'SERIAL': 'DXXXXXXXXXXQ',
'UDID': '9aXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX6d',
'VERSION': '19C63'
}
Profile to be transmitted to the device (same as MacOS, iOS, IPadOS)
{
'AccessRights': 8191,
'CheckInURL': 'https://apm.xxxxx.com/checkin',
'CheckOutWhenRemoved': True,
'IdentityCertificateUUID': '00000000-0000-0000-0000-000000000000',
'PayloadDescription': 'MDM Profile',
'PayloadDisplayName': 'MDM',
'PayloadIdentifier': 'com.xxxxx.xxxxxxx.mdm',
'PayloadOrganization': 'MDM provider',
'PayloadType': 'com.apple.mdm',
'PayloadUUID': '00000000-0000-0000-0000-000000000000',
'PayloadVersion': 1,
'PromptUserToAllowBootstrapTokenForAuthentication': True,
'ServerCapabilities': ['com.apple.mdm.per-user-connections','com.apple.mdm.bootstraptoken'],
'ServerURL': 'https://apm.xxxxx.com/server',
'SignMessage': False,
'Topic': 'com.apple.mgmt.External.206bfa63-f76a-4381-9e50-6f74241d14d9'
}
Because it uses the same profile structure, it is not understood that iOS/iPadOS operates normally and errors occur only in MacOS.
If there is anything that can help me, please let me know.
Thank you.
Hello.
I'm trying to make the ODR experience as seamless as possible while reducing the app bundle size same time. According to the documentation, the files associated with the tags placed in the prefetch tag order section should start downloading immediately after installing the app, but my observations show that the resources behave like it's associated with on demand tag. Assuming: I expected that at least few first resources in order will be ready after 10-15 sec after installing and accessing these resources through conditionallyBeginAccessingResource() will return success almost immediately, but it's not.
Anyone faced this behaviour? Does this technology is still actual for 2022?
Hi, I have logged into an iCloud account on an iOS device simulator on my Mac to sync photos in order to test my app. The photos app is telling me syncing is paused as the device is in low power mode, but as this is a simulator, there's no network seatings to change this and I can't find out why it's in this mode or how to get it out. I've done exactly the same thing for years with no issues, but for some reason it's happening now. Has anyone else experienced the same?
The simulator device is an iPhone 13 Pro Max running 15.5 however I've tested on other device and experienced the same issue.
Many thanks,
Dan
Xcode13.4.1 is running properly, but after upgrading Xcode14, the debugging device reports an error: Library not loaded: / usr/lib/swift/libswiftCoreGraphics dylib, I according to the online solutions are tried, can't solve my problem, problem is ios10.3.3 equipment, unable to debug, also is unable to start the application success after packaging, Is this a problem with xcode14 itself?
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, dynamic libraries, bundles, and object files. 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.
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.
One of the most common points of confusion with dynamic linker is the way that the dynamic linker identifies dynamic libraries. There are two standard approaches to this, as described in 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. Stub libraries currently use YAML format, a fact that’s relevant when you try to interpret linker errors. Use the tapi tool to create and manipulate these files. 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!
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
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.
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
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 have an iPhone 14 running iOS 16.1 and my series 5 watch running watchOS 9.1. I was able to turn on Developer Mode on the phone by going to Settings--> Privacy & Security --> Developer Mode. On the watch however (I'm doing this directly on the watch and not on the watch app on the phone) once I'm in Privacy & Security, there is no option to select Developer Mode. How do I get my watch in Developer Mode in order to get a successful build in xCode?
About technotes
Technotes are focused, timely documents from Apple Developer Technical Support. They explore a wide range of development topics and provide guidance for developers creating apps and accessories for all of Apple’s platforms. Learn about specific development topics through these in-depth technical articles. You can subscribe to this RSS feed to get notified when new technotes are published.
We encourage you to discuss the technotes here in the forums and share your feedback via Feedback Assistant. Let us know if a technote is helpful, or what we can do to improve it. We would appreciate it if you include a Feedback Assistant (FB) number in your forums post, so we can easily track your feedback, and let you know when it’s resolved.
Tagging your post
When tagging your post, please add the relevant tags for the technology area it applies to. You can also add the Technotes tag, if you wish.
Providing feedback
To create new feedback about a specific technote (or technotes as a whole) using Feedback Assistant, use the following path:
What are you seeing an issue with? Developer Tools
Which area are you seeing an issue with? Developer Documentation
What does the documentation issue you are reporting involve? Technotes
Please provide the URL of the content you reporting an issue with: The complete URL of the technote. For example, https://developer.apple.com/documentation/technotes/tn3102-http3-in-your-app.
If you wish to leave feedback on Technotes in general, use https://developer.apple.com/documentation/technotes for the URL.
Then complete the remaining fields appropriately.
We appreciate and look forward to your feedback.
For the past 2+ years I have been using the same process/code to enable and disabling/clearing activation lock from a device and since last week trying to clear the code is returning a 404 error response:
<head>
<title>404 Not Found</title>
</head>
<body>
<center>
<h1>404 Not Found</h1>
</center>
<hr>
<center>Apple</center>
</body>
</html>
I can confirm that the request looks ok and all the necessary params are being sent as expected.
Every time I the Xcode Cloud want to archive the project, after 30 minutes it says "The step invocation hit a user timeout. The xcodebuild archive invocation timed out. No activity has been detected on stdout, stderr or the result bundle in 30 minutes."
I added a step before archiving to build the project and it was ok.
Do you have any suggestions on why this keeps happening? It happens constantly to me.
Hi,
I am helping Evan Richman with the team id L7JQRVXU2V transition to my business (MCRICH LLC), but the status has been in transition for about 1.5 weeks, even though I have gotten the confirmation code. What is going on?
Please help!
After updating the os to iOS17 beta, not able to install the enterprise app through ipa, it throws error
Error installing '//Downloads/-Internal-Appstore-23.6.5-1.ipa', ERROR: Error Domain=com.apple.dt.CoreDeviceError Code=3002 "Failed to install the app on the device." UserInfo={NSUnderlyingError=0x600019bcc750 {Error Domain=com.apple.dt.CoreDeviceError Code=3000 "The item at -Internal-Appstore-23.6.5-1.ipa is not a valid bundle." UserInfo={NSURL=file:////Downloads/-Internal-Appstore-23.6.5-1.ipa, NSLocalizedDescription=The item at -Internal-Appstore-23.6.5-1.ipa is not a valid bundle., NSLocalizedFailureReason=Failed to read the bundle.}}, NSLocalizedDescription=Failed to install the app on the device., NSURL=file:///Downloads/-Internal-Appstore-23.6.5-1.ipa}
Kindly update on this. Do any code side changes have to be done for this to fix these issue?
The need is to persist between launches the state of storyboard objects such as of type UISwitch, UITextField, etc. Can this be done using @AppStorage? If so how can @AppStorage be set to watch these?
I tried getting @AppStorage to watch an outlet class member variable that is connected to the storyboard object:
@IBOutlet weak var iPhoneName: UITextField!
@AppStorage("iPhoneName") var iPhoneName: String = ""
This got an error because the variable to be watched is already declared.
I decided to make the the watched variable different than the one connected to the Storyboard's UITextField object:
@AppStorage("iPhoneName") var striPhoneName: String = ""
and got the error: Unknown attribute 'AppStorage' . In what import library is @AppStorage defined?
If @AppStorage cannot be used for this, what is the easiest way to code storyboard object persistence? I am looking for an easy, and quick way. I am not concerned with memory usage right now.
The crash data opt in rate is 36% for my app. I have another crash reporting framework PLC in the app. The total number of crashes reported by MetricKit health report was 43% of the total crash count from PLC in May. This almost matched the 36% opt in rate.
In the month of June we fixed a series of crashes. Now the total number of crashes reported by MetricKit health report is 80% of the total crash count from PLC. The crash data opt in rate has stayed at 36% for the past 90 days and I am not able to understand how the ratio flipped from 43% to 80%. Looking for guidance here.
Hi Apple IT Developer Team,
In what format should the GetToken response be returned?
The session explains "The JSON Web Token should be signed by the MDM server's private key.", but it seems vague to me.
A sample response would be appreciated.
Hi!
I've been dealing with mergeable libraries quite some time. However I can't achieve the following scenario:
I have 2 xcframeworks A and B that are merged as part of a third xcframework called C. And my app needs to import something from A and B.
As per the documentation we have to remove the references from A and B from the final app and replace it with C. If I work on the same xcodepoj it works like a charm (maybe because of caches), but if I try to compile C as a separate XCFramework and distribute it as a packed library, the app is not able to resolve the symbols to A and B classes.
This C xcframework is compiled with BUILD_LIBRARY_FOR_DISTRIBUTION se to true and if I check its swiftinterface files it is not declaring the symbols from A and B. However the size of the binary seems to have A and B.
Is there any way to export A and B symbols as part of C's swiftinterface? If I add @_exported, it is forcing me to declare the import of A and B wherever I use them and therefore I'm going to have duplicated symbols
Thanks!