Command Line Tools

RSS for tag

Command line tools allow for easy installation of open source software or development on UNIX within Terminal.

Posts under Command Line Tools tag

200 Posts

Post

Replies

Boosts

Views

Activity

CURL command is not working in MAC OS 14.5
CURL command with headers stopped working on the latest mac version. command used to work fine in earlier versions of the Mac OS. Below command returns error - unkown Header curl --request GET ‘URL’ --Header ‘Accept-Language:en’ --Header ‘Content-Type: application/json’ Note: If --Header is given in lower case '--header' is seems to be working in the latest version. Does anyone face this issue and any fix would be really appreciated.
3
0
1.5k
Jun ’24
The connection to service named com.apple.testmanagerd was invalidated: failed at lookup with error 3 - No such process.
The connection to service named com.apple.testmanagerd was invalidated: failed at lookup with error 3 - No such process. Currently I am struggling with this problem while running tests runner `xcrun devicectl device process launch --console --device '000000000000000000000' 'com.gl.RunnerPOC-Watch-AppUITests.xctrunner What may be causing the issue? Thanks in advance
0
0
824
Jun ’24
Gatekeeper blocks command line tool after signing and notarization
I have signed and notarized a single executable file command line tool developed outside Xcode, and distributed outside of the App store by way of a download from a website as follows below, but nevertheless gatekeeper blocks running the tool with the usual message, just like without signing or notarization. If I remove the com.apple.quarantine xattr, the tool runs as it should without gatekeeper interference, as expected. I have browsed countless posts here, with similar issues, but in the end I can't find what's wrong with the process. From what I gather, as long as the target Mac is connected to the Internet, stapling should not be required (I do understand I can't staple a single file executable command line tool), although Gatekeeper would be expected to complain in the case of the first run being done without Internet connection. The certificate is a "Developer Id Application" certificate, installed and valid on the machine doing the signing. It is unclear to me what the distinction is between "Developer Id Application" and "Developer Id Installer" certificates, but it's confusing that using -t install with spctl will actually accept the app. The app is open source and available on GitHub (although the full distribution packaging is done in a separate build environment with some additional logic). The app used below as the target for signing and notarization is available to download from https://www.axantum.com/ in a .tar.gz archive. Here follows a log of commands and output: XecretsCli.plist: (This was necessary to add to the signing to avoid corruption of the executable by the code signing) codesign -s GCXRMT5SQC -f --timestamp -s 0CF6800E595AA6DE9EBB905066619A9BFDD17A77 --entitlements XecretsCli.plist -o runtime XecretsCli codesign -d -vvv --entitlements :- XecretsCli Executable=/Users/svante/Downloads/XecretsCli-Osx-2.3.567 3/XecretsCli Identifier=XecretsCli Format=Mach-O thin (x86_64) CodeDirectory v=20500 size=271478 flags=0x10000(runtime) hashes=8473+7 location=embedded Hash type=sha256 size=32 CandidateCDHash sha256=d3a8216fcb22b4a4af7bd0157ecc3d2b6be9f9b2 CandidateCDHashFull sha256=d3a8216fcb22b4a4af7bd0157ecc3d2b6be9f9b20c9e3c17e107f08c7ae75c5a Hash choices=sha256 CMSDigest=d3a8216fcb22b4a4af7bd0157ecc3d2b6be9f9b20c9e3c17e107f08c7ae75c5a CMSDigestType=2 CDHash=d3a8216fcb22b4a4af7bd0157ecc3d2b6be9f9b2 Signature size=8987 Authority=Developer ID Application: Axantum Software AB (GCXRMT5SQC) Authority=Developer ID Certification Authority Authority=Apple Root CA Timestamp=Jun 20, 2024 at 13:26:05 Info.plist=not bound TeamIdentifier=GCXRMT5SQC Runtime Version=13.1.0 Sealed Resources=none Internal requirements count=1 size=172 Warning: Specifying ':' in the path is deprecated and will not work in a future release codesign -v -vvv --strict --deep XecretsCli XecretsCli: valid on disk XecretsCli: satisfies its Designated Requirement zip XecretsCli.zip XecretsCli adding: XecretsCli (deflated 63%) xcrun notarytool submit "XecretsCli.zip" --keychain-profile "Notarize" --wait Conducting pre-submission checks for XecretsCli.zip and initiating connection to the Apple notary service... Submission ID received id: e5990902-3101-42de-a1a6-b9ea40b944b8 Upload progress: 100.00% (12.4 MB of 12.4 MB) Successfully uploaded file id: e5990902-3101-42de-a1a6-b9ea40b944b8 path: /Users/svante/Downloads/XecretsCli-Osx-2.3.567 3/XecretsCli.zip Waiting for processing to complete. Current status: Accepted........ Processing complete id: e5990902-3101-42de-a1a6-b9ea40b944b8 status: Accepted spctl -a -vvv XecretsCli XecretsCli: rejected (the code is valid but does not seem to be an app) origin=Developer ID Application: Axantum Software AB (GCXRMT5SQC) spctl -a -vvv -t install XecretsCli XecretsCli: accepted source=Notarized Developer ID origin=Developer ID Application: Axantum Software AB (GCXRMT5SQC) Trying to run the executable: "XecretsCli" can't be opened because the identity of the developer cannot be confirmed. Your security preferences allow installation of only apps from the App Store and identified developers. Chrome downloaded this file today at 10:37. OK
3
0
1.2k
Jun ’24
Distinguishing the MacOS and Mac Catalyst destinations
When using xcodebuild to build my project, I specify a destination of generic/platform=macOS Xcode informs me that my destination is ambiguous as there is a generic destination for Mac Catalyst. --- xcodebuild: WARNING: Using the first of multiple matching destinations: { platform:macOS, name:Any Mac } { platform:macOS, variant:Mac Catalyst, name:Any Mac } At the end of the day, that's OK. It's selected the proper destination by happenstance. But is there a way t change my destination specifier so that it can zero in on the MacOS destination that is not the MacCatalyst variant? I've tried using "generic/platform=macOS,variant=". But that does not work.
1
0
1.3k
Jun ’24
run command line tool with associated dylib
I've been given an Xcode project which produces a command line tool which links to a dylib. I have the dylib, but not its source code. I change the signing option for the command line tool target so it is signed automatically by my personal team. On an attempt to run the tool, it fails to load the dylib, because the dylib is signed with a different certificate. I manually codesign the dylib with the same certificate I am using for the command line app. Now, I can build the app, but not run it. If I try to do so, I see four dialogs telling me “libXXX.dylib” can’t be opened because Apple cannot check it for malicious software, then the console tells me "'/path/to/libXXX.dylib' not valid for use in process: library load disallowed by system policy)" I found an old document about Gatekeeper (https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html) which suggests that Gatekeeper just won't let me do this - I can't just put the dylib next to the executable, although the dynamic linker finds the dylib, Gatekeeper doesn't like it because the dylib isn't inside the app bundle (there is none), and isn't in one of the well-known places. I dealt with this by making a do-nothing app which I can sign with my personal certificate. Then I replace the signature on the dylib (and its dependent dylibs) with my own. I add the command line tool and all its dylib dependencies to the do-nothing app, then add those files into the Copy Bundle Resources phase of the do-nothing app. Now, the command line tool and its dylibs all live in do-nothing.app/Contents/Resources, and I can run the tool from there without Gatekeeper complaining. Is there an easier way (aside from asking my supplier for static libraries)? And if this is the only way, is Contents/Resources the right place to put command line tools and the dylibs they link to?
5
0
2.1k
May ’24
How to make CI build with Xcode project with automatic signing?
We have an iOS project that is configured with automatically managed signing. We cannot get automatic signing to work on our CI (GitHub Actions). To even get xcodebuild to archive we have to force it to not sign at all: xcrun xcodebuild \ -workspace app.xcworkspace \ -scheme prod \ -configuration 'Release' \ -destination generic/platform=iOS \ -archivePath ./build/prod.xcarchive \ CODE_SIGN_IDENTITY="" \ CODE_SIGNING_REQUIRED=NO \ CODE_SIGNING_ALLOWED=NO \ clean archive All our attempts to make xcodebuild archive do manual signing have failed. In order to have the app properly signed with the right entitlements we then call codesign: codesign -f \ -s Distribution \ --entitlements prod.entitlements \ ./build/prod.xcarchive/Products/Applications/prod.app Then we export the ipa: xcrun xcodebuild \ -exportArchive \ -archivePath ./build \ -exportOptionsPlist exportOptions.plist \ -exportPath ./build This seems to work so my question is: Is it supported to do manual signing this way? Is there a better way? If we omit the codesign step, the app will still be signed - by exportArchive we assume, but then the entitlements are missing.
2
0
2.7k
May ’24
spacial computing
Hello, I've test Apple spacial computing since few weeks now. I've hope working on spacial computer will give me more productive. At this time, safari extensions I use (bitwarden) was not available. There is no other web browser available. I've not find how to use xcode in my spacial computer. I've not find any native (not iPad) terminal tool. Mac screen sharing only give me one screen (and I've got 4 in my desk). This screen can be very big but I prefer having 4 little screen better a big one. And screen sharing is not usable using mouse at all. my mouse always disapear from my screen when sharing with my spacial computer. For all theses case, using spacial computing for working is not realist at this time in my specific case. I lost to many time using it instead of using a "real" computer. Hope this message can help you to upgrade software and give me all tools needed to use it to work. Best regards, Julien Boquet
0
0
608
May ’24
Setting Display Colour Profiles via terminal
Hi, I'm looking at being able to set a display colour profile via terminal. I know apps such as SwitchResX are able to change this but i can't figure out how and if it is possible to switch via a terminal command or via a script. This here is what i would like to change. I have googled about and searched through preference files but can't find anything. Any help is much apreciated. Thanks, James
0
0
788
May ’24
dyld not searching in /usr/local/lib (cmd line tools 2397)
It seems impossible to me, but around the time I installed the latest command line tools (xcode-select version 2397) binaries what were built with linkages to @rpath/libfoo.dyld stopped being able to find their dependency. The error looks like this. dyld[1471]: Symbol not found: _GEOSGeomGetX Referenced from: <16DBE67F-CB32-31EE-BCE0-BFB58EEC9740> /Users/pramsey/tmp/capi_indexed_predicate Expected in: <no uuid> unknown zsh: abort ./capi_indexed_predicate If I turn on DYLD_PRINT_SEARCHING, I can see the linker giving up on the rpath entry. dyld[1501]: find path "@rpath/libgeos_c.1.dylib" dyld[1501]: not found: "@rpath/libgeos_c.1.dylib" I can work around, partially, by setting DYLD_LIBRARY_FALLBACK_PATH to have /usr/local/lib in it, but that is only a partial fix, because SIP will strip that variable for any child processes, which means most of my development and database work is borked. This seems like a very new quirk, maybe related to the XCode 15 update, at least in my personal time line, has anyone else seen it, or have any clue as to what has changed? (Worth noting, nothing changed in my code, just one day my builds wouldn't run anymore, and that day was the day after I had installed the new commandline tools).
16
5
6.4k
May ’24
defaults tool can't handle app group settings?
I have an app group to share settings between a main app and a helper. This is accessed using [[NSUserDefaults alloc] initWithSuiteName: @"FDHC2KMZ6V.com.jwwalker.autopairs.suite"]. What's puzzling me is that if I go to Terminal and enter defaults read FDHC2KMZ6V.com.jwwalker.autopairs.suite it tells me that the domain does not exist. Is this a bug in the defaults tool, or is there some trick I'm missing?
4
1
1.3k
May ’24
profiles command
I'm working on a tool which parses the output from the command "profiles -P -o" to check that our MDM profile has been deployed correctly, as there has been issues around profiles being misconfigured. It seems that the framework which the profiles command uses is private, so I'm just wondering could there be a way to get information which is similar to the output from the profiles command without having to directly use the command?
1
0
609
May ’24
How do I Developer ID-sign and export a macOS app with an entitlement through the command-line without being signed in with my Apple ID in Xcode?
Hi, I'm trying to Developer ID-sign and export a macOS app through my CI/CD pipeline on GitHub Actions, but I've run into an issue signing my app once it has one or more entitlements, in this case, an app group entitlement. I'm using xcodebuild to archive the app and export that archive, signing it along the way. This works fine as long as my app does not have an entitlement, but once it has an entitlement, exporting the archive fails. To elaborate a bit on this, I first make sure the development certificate and the Developer ID certificate are installed on the machine. These are installed using the security CLI, and I'm confident that they are installed correctly. Then I proceed to archive the app using xcodebuild as shown below. xcodebuild archive\ -scheme MyApp\ -configuration Release\ -sdk macosx\ -archivePath MyApp.xcarchive\ -destination "platform=OS X,arch=x86_64"\ -allowProvisioningUpdates\ -authenticationKeyIssuerID XYZ1234\ -authenticationKeyID XYZ\ -authenticationKeyPath AuthKey.p8 Then I export the archive using xcodebuild as shown below. xcodebuild -exportArchive\ -archivePath MyApp.xcarchive\ -exportPath export\ -exportOptionsPlist ExportOptions.plist\ -allowProvisioningUpdates\ -authenticationKeyIssuerID XYZ1234\ -authenticationKeyID XYZ\ -authenticationKeyPath AuthKey.p8 When my app has one or more entitlements, this fails with the following error message: Error: error: exportArchive: Cloud signing permission error Error: error: exportArchive: No profiles for 'com.example.MyApp' were found Note that I am not signed into an Apple ID in Xcode when signing and exporting my app through my CI/CD pipeline, as there does not seem to be a way to sign into an Apple ID in Xcode through the CLI. Instead, I'm authenticating with an App Store Connect API key. Developer ID-signing and exporting my app does work when I do it through Xcode, even if the app has an entitlement, so the signing of the app is configured correctly. Upon inspecting the contents of ~/Library/MobileDevice/Provisioning Profiles after signing and exporting the app through Xcode, I notice that Xcode automatically creates two provisioning profiles with the titles: Mac Team Provisioning Profile: com.example.MyApp Mac Team Direct Provisioning Profile: com.example.MyApp These two provisioning profiles are not created when signing and exporting the app through the xcodebuild command-line tool, and I suspect that is part of the problem. I'd be OK with manually creating these provisioning profiles through Apple's developer portal and installing them as part of my CI/CD pipeline, but I can't seem to find a way to create this type of provisioning profile through the portal. Neither the macOS App Development, Mac App Store Connect, nor Developer ID provisioning profile types yield this kind of provisioning profile. All of this, leaves me with the question: How do I Developer ID-sign and export a macOS app with an entitlement through the command-line without being signed in with my Apple ID in Xcode?
4
0
2.2k
Apr ’24
Xcode CommandLineTools
OS :14.4.0 xcode version 2406 I installed CommandLineTolols by using below command xcode-select --install I checeked the installtion with xcode-select -p and got expecetd output /Library/Developer/CommandLineTools now if I do this sudo xcode-select --switch /Library/Developer/CommandLineTools there is no change in the promt % to $ which suppose to be happen. Am I right? I am now in mac world. How do I know CommandLineToos running? Please help
1
0
1.2k
Apr ’24
Xcode 15.3, use xcodebuild to build app, error: "TARGET" requires a provisioning profile xxxxx
Everything is ok util upgrade to xcode15.3 and macos14.0. When I usexcodebuild to build my app, some error occured: error: "ShopAssistant" requires a provisioning profile with the Associated Domains, Push Notifications, and Sign in with Apple features. Select a provisioning profile in the Signing &amp; Capabilities editor. (in target 'ShopAssistant' from project 'ShopAssistant') But, just use Xcode menu Product/Archive is ok. I need to use command line in our CI/CD system. Hope somebody can help me. Terminal Log Details: xcodebuild -project ShopAssistant.xcodeproj -scheme ShopAssistant -sdk iphoneos -configuration Release archive Command line invocation: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project ShopAssistant.xcodeproj -scheme ShopAssistant -sdk iphoneos -configuration Release archive User defaults from command line: IDEPackageSupportUseBuiltinSCM = YES Build settings from command line: SDKROOT = iphoneos17.4 --- xcodebuild: WARNING: Using the first of multiple matching destinations: { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device } { platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:00008103-0009489814FB001E, name:My Mac } { platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device } { platform:iOS Simulator, id:E06C0B90-67C7-449D-981E-0BFEEDF77160, OS:17.4, name:iPad (10th generation) } { platform:iOS Simulator, id:E06C0B90-67C7-449D-981E-0BFEEDF77160, OS:17.4, name:iPad (10th generation) } { platform:iOS Simulator, id:35BC8560-1097-4751-A0F5-F6DC0B4C84DE, OS:17.4, name:iPad Air (5th generation) } { platform:iOS Simulator, id:35BC8560-1097-4751-A0F5-F6DC0B4C84DE, OS:17.4, name:iPad Air (5th generation) } { platform:iOS Simulator, id:1150700F-45CA-42E4-8D8B-8E70C849886E, OS:17.4, name:iPad Pro (11-inch) (4th generation) } { platform:iOS Simulator, id:1150700F-45CA-42E4-8D8B-8E70C849886E, OS:17.4, name:iPad Pro (11-inch) (4th generation) } { platform:iOS Simulator, id:5BA4C379-2462-449F-9D93-5D64DED7422E, OS:17.4, name:iPad Pro (12.9-inch) (6th generation) } { platform:iOS Simulator, id:5BA4C379-2462-449F-9D93-5D64DED7422E, OS:17.4, name:iPad Pro (12.9-inch) (6th generation) } { platform:iOS Simulator, id:F2F80E23-7C33-4965-806D-EC56962ECE54, OS:17.4, name:iPad mini (6th generation) } { platform:iOS Simulator, id:F2F80E23-7C33-4965-806D-EC56962ECE54, OS:17.4, name:iPad mini (6th generation) } { platform:iOS Simulator, id:C5A161D8-1D8B-499A-BB27-3B630002CE25, OS:17.4, name:iPhone 15 } { platform:iOS Simulator, id:C5A161D8-1D8B-499A-BB27-3B630002CE25, OS:17.4, name:iPhone 15 } { platform:iOS Simulator, id:995C11EA-5ACF-4A1A-9FFC-DF0A0AEE63F2, OS:17.4, name:iPhone 15 Plus } { platform:iOS Simulator, id:995C11EA-5ACF-4A1A-9FFC-DF0A0AEE63F2, OS:17.4, name:iPhone 15 Plus } { platform:iOS Simulator, id:3A444CC6-16B1-4F79-8144-7A5BB23FD1BA, OS:17.4, name:iPhone 15 Pro } { platform:iOS Simulator, id:3A444CC6-16B1-4F79-8144-7A5BB23FD1BA, OS:17.4, name:iPhone 15 Pro } { platform:iOS Simulator, id:D30229CD-1D9E-4206-980E-70A5208E5193, OS:17.4, name:iPhone 15 Pro Max } { platform:iOS Simulator, id:D30229CD-1D9E-4206-980E-70A5208E5193, OS:17.4, name:iPhone 15 Pro Max } { platform:iOS Simulator, id:3C53C988-D93B-4E38-AC9F-BE8B8F111280, OS:17.4, name:iPhone SE (3rd generation) } { platform:iOS Simulator, id:3C53C988-D93B-4E38-AC9F-BE8B8F111280, OS:17.4, name:iPhone SE (3rd generation) } Prepare packages ComputeTargetDependencyGraph note: Building targets in dependency order note: Target dependency graph (1 target) Target 'ShopAssistant' in project 'ShopAssistant' (no dependencies) GatherProvisioningInputs CreateBuildDescription ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -E -dM -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk -x objective-c -c /dev/null ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -E -dM -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk -x c -c /dev/null ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/usr/bin/ibtool --version --output-format xml1 ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/usr/bin/actool --print-asset-tag-combinations --output-format xml1 /Users/es/ShopAssistant_3.7.9/shopassistant_native_ios_pure/930714_0_4.9.3/Assistant/Images.xcassets ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/usr/bin/actool --version --output-format xml1 ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -v ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -E -dM -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk -x c -c /dev/null ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld -version_details Build description signature: xxxxxxx Build description path: /Users/es/Library/Developer/Xcode/DerivedData/ShopAssistant-cmrxpudshqxyfcgqsharjobmjuxt/Build/Intermediates.noindex/ArchiveIntermediates/ShopAssistant/IntermediateBuildFilesPath/XCBuildData/xxxxxx.xcbuilddata /Users/ShopAssistant.xcodeproj: warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 12.0 to 17.4.99. (in target 'ShopAssistant' from project 'ShopAssistant') /Users/ShopAssistant.xcodeproj: error: "ShopAssistant" requires a provisioning profile with the Associated Domains, Push Notifications, and Sign in with Apple features. Select a provisioning profile in the Signing &amp; Capabilities editor. (in target 'ShopAssistant' from project 'ShopAssistant') ** ARCHIVE FAILED **
0
0
1.6k
Apr ’24
Vim creating additional files when creating/editing .txt file
I'm learning to use Vim in Xcode and within Terminal. I've used VimTutor to learn the basics. The issue I've run into when creating a text file is additional, garbage files being created whenever I create or edit a .txt file - vim index.txt produces the following: How do I prevent vim from creating the .index.html.un~ and index.html~ files? It's annoying me and git. Thanks, jake
1
0
1.1k
Apr ’24
The Xcode Installer says I need an version of OS X lower than I have
I am trying to install the command line tools for Xcode. When I open the installer, it says Command line tools can't be installed on this disk. macOS version 14 or later is required However, About This Mac says that I am running Catalina 1015.7. If I try to install Xcode from the App Store I get the same message.
Replies
1
Boosts
0
Views
692
Activity
Jun ’24
CURL command is not working in MAC OS 14.5
CURL command with headers stopped working on the latest mac version. command used to work fine in earlier versions of the Mac OS. Below command returns error - unkown Header curl --request GET ‘URL’ --Header ‘Accept-Language:en’ --Header ‘Content-Type: application/json’ Note: If --Header is given in lower case '--header' is seems to be working in the latest version. Does anyone face this issue and any fix would be really appreciated.
Replies
3
Boosts
0
Views
1.5k
Activity
Jun ’24
How to build and run a Xcode project from the CLI
Hello, I'm a beginner and have started learning Swift. I want to create a toy CLI project that needs to read the arguments you pass to it, but I'm unable to figure out how I can run this project from the CLI so I can actually pass arguments to my program. Any idea?
Replies
2
Boosts
0
Views
714
Activity
Jun ’24
The connection to service named com.apple.testmanagerd was invalidated: failed at lookup with error 3 - No such process.
The connection to service named com.apple.testmanagerd was invalidated: failed at lookup with error 3 - No such process. Currently I am struggling with this problem while running tests runner `xcrun devicectl device process launch --console --device '000000000000000000000' 'com.gl.RunnerPOC-Watch-AppUITests.xctrunner What may be causing the issue? Thanks in advance
Replies
0
Boosts
0
Views
824
Activity
Jun ’24
Gatekeeper blocks command line tool after signing and notarization
I have signed and notarized a single executable file command line tool developed outside Xcode, and distributed outside of the App store by way of a download from a website as follows below, but nevertheless gatekeeper blocks running the tool with the usual message, just like without signing or notarization. If I remove the com.apple.quarantine xattr, the tool runs as it should without gatekeeper interference, as expected. I have browsed countless posts here, with similar issues, but in the end I can't find what's wrong with the process. From what I gather, as long as the target Mac is connected to the Internet, stapling should not be required (I do understand I can't staple a single file executable command line tool), although Gatekeeper would be expected to complain in the case of the first run being done without Internet connection. The certificate is a "Developer Id Application" certificate, installed and valid on the machine doing the signing. It is unclear to me what the distinction is between "Developer Id Application" and "Developer Id Installer" certificates, but it's confusing that using -t install with spctl will actually accept the app. The app is open source and available on GitHub (although the full distribution packaging is done in a separate build environment with some additional logic). The app used below as the target for signing and notarization is available to download from https://www.axantum.com/ in a .tar.gz archive. Here follows a log of commands and output: XecretsCli.plist: (This was necessary to add to the signing to avoid corruption of the executable by the code signing) codesign -s GCXRMT5SQC -f --timestamp -s 0CF6800E595AA6DE9EBB905066619A9BFDD17A77 --entitlements XecretsCli.plist -o runtime XecretsCli codesign -d -vvv --entitlements :- XecretsCli Executable=/Users/svante/Downloads/XecretsCli-Osx-2.3.567 3/XecretsCli Identifier=XecretsCli Format=Mach-O thin (x86_64) CodeDirectory v=20500 size=271478 flags=0x10000(runtime) hashes=8473+7 location=embedded Hash type=sha256 size=32 CandidateCDHash sha256=d3a8216fcb22b4a4af7bd0157ecc3d2b6be9f9b2 CandidateCDHashFull sha256=d3a8216fcb22b4a4af7bd0157ecc3d2b6be9f9b20c9e3c17e107f08c7ae75c5a Hash choices=sha256 CMSDigest=d3a8216fcb22b4a4af7bd0157ecc3d2b6be9f9b20c9e3c17e107f08c7ae75c5a CMSDigestType=2 CDHash=d3a8216fcb22b4a4af7bd0157ecc3d2b6be9f9b2 Signature size=8987 Authority=Developer ID Application: Axantum Software AB (GCXRMT5SQC) Authority=Developer ID Certification Authority Authority=Apple Root CA Timestamp=Jun 20, 2024 at 13:26:05 Info.plist=not bound TeamIdentifier=GCXRMT5SQC Runtime Version=13.1.0 Sealed Resources=none Internal requirements count=1 size=172 Warning: Specifying ':' in the path is deprecated and will not work in a future release codesign -v -vvv --strict --deep XecretsCli XecretsCli: valid on disk XecretsCli: satisfies its Designated Requirement zip XecretsCli.zip XecretsCli adding: XecretsCli (deflated 63%) xcrun notarytool submit "XecretsCli.zip" --keychain-profile "Notarize" --wait Conducting pre-submission checks for XecretsCli.zip and initiating connection to the Apple notary service... Submission ID received id: e5990902-3101-42de-a1a6-b9ea40b944b8 Upload progress: 100.00% (12.4 MB of 12.4 MB) Successfully uploaded file id: e5990902-3101-42de-a1a6-b9ea40b944b8 path: /Users/svante/Downloads/XecretsCli-Osx-2.3.567 3/XecretsCli.zip Waiting for processing to complete. Current status: Accepted........ Processing complete id: e5990902-3101-42de-a1a6-b9ea40b944b8 status: Accepted spctl -a -vvv XecretsCli XecretsCli: rejected (the code is valid but does not seem to be an app) origin=Developer ID Application: Axantum Software AB (GCXRMT5SQC) spctl -a -vvv -t install XecretsCli XecretsCli: accepted source=Notarized Developer ID origin=Developer ID Application: Axantum Software AB (GCXRMT5SQC) Trying to run the executable: "XecretsCli" can't be opened because the identity of the developer cannot be confirmed. Your security preferences allow installation of only apps from the App Store and identified developers. Chrome downloaded this file today at 10:37. OK
Replies
3
Boosts
0
Views
1.2k
Activity
Jun ’24
devicectl device process to run tests
Is it planned to add ability to run Xcode test bundles using devicectl tool? If it is possible now how to achieve it? Is there any other ways to run tests bundle .app file using command line?
Replies
0
Boosts
1
Views
686
Activity
Jun ’24
Distinguishing the MacOS and Mac Catalyst destinations
When using xcodebuild to build my project, I specify a destination of generic/platform=macOS Xcode informs me that my destination is ambiguous as there is a generic destination for Mac Catalyst. --- xcodebuild: WARNING: Using the first of multiple matching destinations: { platform:macOS, name:Any Mac } { platform:macOS, variant:Mac Catalyst, name:Any Mac } At the end of the day, that's OK. It's selected the proper destination by happenstance. But is there a way t change my destination specifier so that it can zero in on the MacOS destination that is not the MacCatalyst variant? I've tried using "generic/platform=macOS,variant=". But that does not work.
Replies
1
Boosts
0
Views
1.3k
Activity
Jun ’24
Recommended approach to generate the Exported Symbols List file
Assuming I have a static library where all global symbols need to be re-exported by the target executable. How do I extract these symbols into a file to be used with ld's -exported_symbols_list and Xcode's EXPORTED_SYMBOLS_FILE? I was thinking about nm -gUjo … + sed but maybe there is abetter way?
Replies
1
Boosts
0
Views
977
Activity
Jun ’24
run command line tool with associated dylib
I've been given an Xcode project which produces a command line tool which links to a dylib. I have the dylib, but not its source code. I change the signing option for the command line tool target so it is signed automatically by my personal team. On an attempt to run the tool, it fails to load the dylib, because the dylib is signed with a different certificate. I manually codesign the dylib with the same certificate I am using for the command line app. Now, I can build the app, but not run it. If I try to do so, I see four dialogs telling me “libXXX.dylib” can’t be opened because Apple cannot check it for malicious software, then the console tells me "'/path/to/libXXX.dylib' not valid for use in process: library load disallowed by system policy)" I found an old document about Gatekeeper (https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html) which suggests that Gatekeeper just won't let me do this - I can't just put the dylib next to the executable, although the dynamic linker finds the dylib, Gatekeeper doesn't like it because the dylib isn't inside the app bundle (there is none), and isn't in one of the well-known places. I dealt with this by making a do-nothing app which I can sign with my personal certificate. Then I replace the signature on the dylib (and its dependent dylibs) with my own. I add the command line tool and all its dylib dependencies to the do-nothing app, then add those files into the Copy Bundle Resources phase of the do-nothing app. Now, the command line tool and its dylibs all live in do-nothing.app/Contents/Resources, and I can run the tool from there without Gatekeeper complaining. Is there an easier way (aside from asking my supplier for static libraries)? And if this is the only way, is Contents/Resources the right place to put command line tools and the dylibs they link to?
Replies
5
Boosts
0
Views
2.1k
Activity
May ’24
How to make CI build with Xcode project with automatic signing?
We have an iOS project that is configured with automatically managed signing. We cannot get automatic signing to work on our CI (GitHub Actions). To even get xcodebuild to archive we have to force it to not sign at all: xcrun xcodebuild \ -workspace app.xcworkspace \ -scheme prod \ -configuration 'Release' \ -destination generic/platform=iOS \ -archivePath ./build/prod.xcarchive \ CODE_SIGN_IDENTITY="" \ CODE_SIGNING_REQUIRED=NO \ CODE_SIGNING_ALLOWED=NO \ clean archive All our attempts to make xcodebuild archive do manual signing have failed. In order to have the app properly signed with the right entitlements we then call codesign: codesign -f \ -s Distribution \ --entitlements prod.entitlements \ ./build/prod.xcarchive/Products/Applications/prod.app Then we export the ipa: xcrun xcodebuild \ -exportArchive \ -archivePath ./build \ -exportOptionsPlist exportOptions.plist \ -exportPath ./build This seems to work so my question is: Is it supported to do manual signing this way? Is there a better way? If we omit the codesign step, the app will still be signed - by exportArchive we assume, but then the entitlements are missing.
Replies
2
Boosts
0
Views
2.7k
Activity
May ’24
spacial computing
Hello, I've test Apple spacial computing since few weeks now. I've hope working on spacial computer will give me more productive. At this time, safari extensions I use (bitwarden) was not available. There is no other web browser available. I've not find how to use xcode in my spacial computer. I've not find any native (not iPad) terminal tool. Mac screen sharing only give me one screen (and I've got 4 in my desk). This screen can be very big but I prefer having 4 little screen better a big one. And screen sharing is not usable using mouse at all. my mouse always disapear from my screen when sharing with my spacial computer. For all theses case, using spacial computing for working is not realist at this time in my specific case. I lost to many time using it instead of using a "real" computer. Hope this message can help you to upgrade software and give me all tools needed to use it to work. Best regards, Julien Boquet
Replies
0
Boosts
0
Views
608
Activity
May ’24
Setting Display Colour Profiles via terminal
Hi, I'm looking at being able to set a display colour profile via terminal. I know apps such as SwitchResX are able to change this but i can't figure out how and if it is possible to switch via a terminal command or via a script. This here is what i would like to change. I have googled about and searched through preference files but can't find anything. Any help is much apreciated. Thanks, James
Replies
0
Boosts
0
Views
788
Activity
May ’24
dyld not searching in /usr/local/lib (cmd line tools 2397)
It seems impossible to me, but around the time I installed the latest command line tools (xcode-select version 2397) binaries what were built with linkages to @rpath/libfoo.dyld stopped being able to find their dependency. The error looks like this. dyld[1471]: Symbol not found: _GEOSGeomGetX Referenced from: <16DBE67F-CB32-31EE-BCE0-BFB58EEC9740> /Users/pramsey/tmp/capi_indexed_predicate Expected in: <no uuid> unknown zsh: abort ./capi_indexed_predicate If I turn on DYLD_PRINT_SEARCHING, I can see the linker giving up on the rpath entry. dyld[1501]: find path "@rpath/libgeos_c.1.dylib" dyld[1501]: not found: "@rpath/libgeos_c.1.dylib" I can work around, partially, by setting DYLD_LIBRARY_FALLBACK_PATH to have /usr/local/lib in it, but that is only a partial fix, because SIP will strip that variable for any child processes, which means most of my development and database work is borked. This seems like a very new quirk, maybe related to the XCode 15 update, at least in my personal time line, has anyone else seen it, or have any clue as to what has changed? (Worth noting, nothing changed in my code, just one day my builds wouldn't run anymore, and that day was the day after I had installed the new commandline tools).
Replies
16
Boosts
5
Views
6.4k
Activity
May ’24
defaults tool can't handle app group settings?
I have an app group to share settings between a main app and a helper. This is accessed using [[NSUserDefaults alloc] initWithSuiteName: @"FDHC2KMZ6V.com.jwwalker.autopairs.suite"]. What's puzzling me is that if I go to Terminal and enter defaults read FDHC2KMZ6V.com.jwwalker.autopairs.suite it tells me that the domain does not exist. Is this a bug in the defaults tool, or is there some trick I'm missing?
Replies
4
Boosts
1
Views
1.3k
Activity
May ’24
Where is the source code for ld-prime?
I am wondering where the source code of ld-prime is on Github. There are references to it in the github for dyld, but I can't find it anywhere. I have a suspicion that it uses LLVM for linking. I'm looking out of curiosity to see if Apple is slowly closing down its compile toolchain and maybe learn how Apple sped up the linking stage.
Replies
2
Boosts
1
Views
2k
Activity
May ’24
profiles command
I'm working on a tool which parses the output from the command "profiles -P -o" to check that our MDM profile has been deployed correctly, as there has been issues around profiles being misconfigured. It seems that the framework which the profiles command uses is private, so I'm just wondering could there be a way to get information which is similar to the output from the profiles command without having to directly use the command?
Replies
1
Boosts
0
Views
609
Activity
May ’24
How do I Developer ID-sign and export a macOS app with an entitlement through the command-line without being signed in with my Apple ID in Xcode?
Hi, I'm trying to Developer ID-sign and export a macOS app through my CI/CD pipeline on GitHub Actions, but I've run into an issue signing my app once it has one or more entitlements, in this case, an app group entitlement. I'm using xcodebuild to archive the app and export that archive, signing it along the way. This works fine as long as my app does not have an entitlement, but once it has an entitlement, exporting the archive fails. To elaborate a bit on this, I first make sure the development certificate and the Developer ID certificate are installed on the machine. These are installed using the security CLI, and I'm confident that they are installed correctly. Then I proceed to archive the app using xcodebuild as shown below. xcodebuild archive\ -scheme MyApp\ -configuration Release\ -sdk macosx\ -archivePath MyApp.xcarchive\ -destination "platform=OS X,arch=x86_64"\ -allowProvisioningUpdates\ -authenticationKeyIssuerID XYZ1234\ -authenticationKeyID XYZ\ -authenticationKeyPath AuthKey.p8 Then I export the archive using xcodebuild as shown below. xcodebuild -exportArchive\ -archivePath MyApp.xcarchive\ -exportPath export\ -exportOptionsPlist ExportOptions.plist\ -allowProvisioningUpdates\ -authenticationKeyIssuerID XYZ1234\ -authenticationKeyID XYZ\ -authenticationKeyPath AuthKey.p8 When my app has one or more entitlements, this fails with the following error message: Error: error: exportArchive: Cloud signing permission error Error: error: exportArchive: No profiles for 'com.example.MyApp' were found Note that I am not signed into an Apple ID in Xcode when signing and exporting my app through my CI/CD pipeline, as there does not seem to be a way to sign into an Apple ID in Xcode through the CLI. Instead, I'm authenticating with an App Store Connect API key. Developer ID-signing and exporting my app does work when I do it through Xcode, even if the app has an entitlement, so the signing of the app is configured correctly. Upon inspecting the contents of ~/Library/MobileDevice/Provisioning Profiles after signing and exporting the app through Xcode, I notice that Xcode automatically creates two provisioning profiles with the titles: Mac Team Provisioning Profile: com.example.MyApp Mac Team Direct Provisioning Profile: com.example.MyApp These two provisioning profiles are not created when signing and exporting the app through the xcodebuild command-line tool, and I suspect that is part of the problem. I'd be OK with manually creating these provisioning profiles through Apple's developer portal and installing them as part of my CI/CD pipeline, but I can't seem to find a way to create this type of provisioning profile through the portal. Neither the macOS App Development, Mac App Store Connect, nor Developer ID provisioning profile types yield this kind of provisioning profile. All of this, leaves me with the question: How do I Developer ID-sign and export a macOS app with an entitlement through the command-line without being signed in with my Apple ID in Xcode?
Replies
4
Boosts
0
Views
2.2k
Activity
Apr ’24
Xcode CommandLineTools
OS :14.4.0 xcode version 2406 I installed CommandLineTolols by using below command xcode-select --install I checeked the installtion with xcode-select -p and got expecetd output /Library/Developer/CommandLineTools now if I do this sudo xcode-select --switch /Library/Developer/CommandLineTools there is no change in the promt % to $ which suppose to be happen. Am I right? I am now in mac world. How do I know CommandLineToos running? Please help
Replies
1
Boosts
0
Views
1.2k
Activity
Apr ’24
Xcode 15.3, use xcodebuild to build app, error: "TARGET" requires a provisioning profile xxxxx
Everything is ok util upgrade to xcode15.3 and macos14.0. When I usexcodebuild to build my app, some error occured: error: "ShopAssistant" requires a provisioning profile with the Associated Domains, Push Notifications, and Sign in with Apple features. Select a provisioning profile in the Signing &amp; Capabilities editor. (in target 'ShopAssistant' from project 'ShopAssistant') But, just use Xcode menu Product/Archive is ok. I need to use command line in our CI/CD system. Hope somebody can help me. Terminal Log Details: xcodebuild -project ShopAssistant.xcodeproj -scheme ShopAssistant -sdk iphoneos -configuration Release archive Command line invocation: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project ShopAssistant.xcodeproj -scheme ShopAssistant -sdk iphoneos -configuration Release archive User defaults from command line: IDEPackageSupportUseBuiltinSCM = YES Build settings from command line: SDKROOT = iphoneos17.4 --- xcodebuild: WARNING: Using the first of multiple matching destinations: { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device } { platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:00008103-0009489814FB001E, name:My Mac } { platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device } { platform:iOS Simulator, id:E06C0B90-67C7-449D-981E-0BFEEDF77160, OS:17.4, name:iPad (10th generation) } { platform:iOS Simulator, id:E06C0B90-67C7-449D-981E-0BFEEDF77160, OS:17.4, name:iPad (10th generation) } { platform:iOS Simulator, id:35BC8560-1097-4751-A0F5-F6DC0B4C84DE, OS:17.4, name:iPad Air (5th generation) } { platform:iOS Simulator, id:35BC8560-1097-4751-A0F5-F6DC0B4C84DE, OS:17.4, name:iPad Air (5th generation) } { platform:iOS Simulator, id:1150700F-45CA-42E4-8D8B-8E70C849886E, OS:17.4, name:iPad Pro (11-inch) (4th generation) } { platform:iOS Simulator, id:1150700F-45CA-42E4-8D8B-8E70C849886E, OS:17.4, name:iPad Pro (11-inch) (4th generation) } { platform:iOS Simulator, id:5BA4C379-2462-449F-9D93-5D64DED7422E, OS:17.4, name:iPad Pro (12.9-inch) (6th generation) } { platform:iOS Simulator, id:5BA4C379-2462-449F-9D93-5D64DED7422E, OS:17.4, name:iPad Pro (12.9-inch) (6th generation) } { platform:iOS Simulator, id:F2F80E23-7C33-4965-806D-EC56962ECE54, OS:17.4, name:iPad mini (6th generation) } { platform:iOS Simulator, id:F2F80E23-7C33-4965-806D-EC56962ECE54, OS:17.4, name:iPad mini (6th generation) } { platform:iOS Simulator, id:C5A161D8-1D8B-499A-BB27-3B630002CE25, OS:17.4, name:iPhone 15 } { platform:iOS Simulator, id:C5A161D8-1D8B-499A-BB27-3B630002CE25, OS:17.4, name:iPhone 15 } { platform:iOS Simulator, id:995C11EA-5ACF-4A1A-9FFC-DF0A0AEE63F2, OS:17.4, name:iPhone 15 Plus } { platform:iOS Simulator, id:995C11EA-5ACF-4A1A-9FFC-DF0A0AEE63F2, OS:17.4, name:iPhone 15 Plus } { platform:iOS Simulator, id:3A444CC6-16B1-4F79-8144-7A5BB23FD1BA, OS:17.4, name:iPhone 15 Pro } { platform:iOS Simulator, id:3A444CC6-16B1-4F79-8144-7A5BB23FD1BA, OS:17.4, name:iPhone 15 Pro } { platform:iOS Simulator, id:D30229CD-1D9E-4206-980E-70A5208E5193, OS:17.4, name:iPhone 15 Pro Max } { platform:iOS Simulator, id:D30229CD-1D9E-4206-980E-70A5208E5193, OS:17.4, name:iPhone 15 Pro Max } { platform:iOS Simulator, id:3C53C988-D93B-4E38-AC9F-BE8B8F111280, OS:17.4, name:iPhone SE (3rd generation) } { platform:iOS Simulator, id:3C53C988-D93B-4E38-AC9F-BE8B8F111280, OS:17.4, name:iPhone SE (3rd generation) } Prepare packages ComputeTargetDependencyGraph note: Building targets in dependency order note: Target dependency graph (1 target) Target 'ShopAssistant' in project 'ShopAssistant' (no dependencies) GatherProvisioningInputs CreateBuildDescription ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -E -dM -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk -x objective-c -c /dev/null ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -E -dM -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk -x c -c /dev/null ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/usr/bin/ibtool --version --output-format xml1 ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/usr/bin/actool --print-asset-tag-combinations --output-format xml1 /Users/es/ShopAssistant_3.7.9/shopassistant_native_ios_pure/930714_0_4.9.3/Assistant/Images.xcassets ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/usr/bin/actool --version --output-format xml1 ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -v ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -E -dM -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.4.sdk -x c -c /dev/null ExecuteExternalTool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld -version_details Build description signature: xxxxxxx Build description path: /Users/es/Library/Developer/Xcode/DerivedData/ShopAssistant-cmrxpudshqxyfcgqsharjobmjuxt/Build/Intermediates.noindex/ArchiveIntermediates/ShopAssistant/IntermediateBuildFilesPath/XCBuildData/xxxxxx.xcbuilddata /Users/ShopAssistant.xcodeproj: warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 12.0 to 17.4.99. (in target 'ShopAssistant' from project 'ShopAssistant') /Users/ShopAssistant.xcodeproj: error: "ShopAssistant" requires a provisioning profile with the Associated Domains, Push Notifications, and Sign in with Apple features. Select a provisioning profile in the Signing &amp; Capabilities editor. (in target 'ShopAssistant' from project 'ShopAssistant') ** ARCHIVE FAILED **
Replies
0
Boosts
0
Views
1.6k
Activity
Apr ’24
Vim creating additional files when creating/editing .txt file
I'm learning to use Vim in Xcode and within Terminal. I've used VimTutor to learn the basics. The issue I've run into when creating a text file is additional, garbage files being created whenever I create or edit a .txt file - vim index.txt produces the following: How do I prevent vim from creating the .index.html.un~ and index.html~ files? It's annoying me and git. Thanks, jake
Replies
1
Boosts
0
Views
1.1k
Activity
Apr ’24