Hardened runtime must affect the exec, since it simply wont run anymore after going through the codesign process. I assumed there was some error in what I was doing, but the way its looking, your telling me it just can't be done. Unfortuantly Xmrig is one of a kind, and there aren't really any other open source miners that support MacOS at all. So unless anyone has any ideas, it looks like I'll have to find a way to live without notarization. Is this correct?PS: I did, and according to my understanding, I'm only required to do that once the code is distributed to the public, which it currently isn't.
Post
Replies
Boosts
Views
Activity
I have attempted both with and without sandboxing. It currently does not have it.
xmrig is the problem exec (https://github.com/xmrig/xmrig). After adding the copy phase, looks like we're back to the same old issue. " 'xmrig' must be rebuilt with support for the Hardened Runtime. Enable the Hardened Runtime capability in the project editor, test your app, rebuild your archive, and upload again." Enabling the "Code sign on copy" checkbox in the Copy Files Phase causes the exec to stop working, and notarization fails regardless of whether that option is enabled or not.
Just use bundlePath and append Contents/Helpers/myProblemExecI'm getting this: Error Domain=NSCocoaErrorDomain Code=4 "The file “xmrig” doesn’t exist." I dont think xcode is acutally adding the Helpers folder in the contents folder. Should the folder's location be "relative to group?" The file definitely exists in my project files, just not in the actual application contents folder?Thanks for clarifying on the code signing stuff.No, it should not be using zsh. Funny enough, i don't actually need to extract data from it, I have another way of making sure it gets its job done. Thanks so much.
I also believe moving the exec may have fixed the notarazation issue, but I don't have a reliable internet connection at the moment, so i'm going to have to try again later.
Okay, I moved it to Helpers. I'm not sure how to retrive the path for the exec in this new folder. "Bundle.path(forResource: "execname", ofType: nil, inDirectory: "Helpers")" doesn't seem to work. Before I was using Bundle.main.path(forResource: <String?>, ofType: <String?>).Yes I do have a helper in LoginHelpers.How can I sign it with the hardened runtime and timestamp flags that when the "codesign --force --deep --options runtime <Devloper ID Application cert identity> <path to executable>" (specifically the --options runtime option ) breaks it?I'm not sure how its being executed (I'm just using let a = process() , a.run()) How would I run it without a shell? Normally, when this problem exec is run without my program, it is an automated command line application.
Yes, my main app is written in swift. The command line exec is definitly not written in Swift and is from an open source project. I believe it's acutally C++. I am succussfully running it using process (took me a while to get that one working), the issue is notarization fails on the exec.I am building it seperately using cmake (per the developer's instructions), then integrating it into my app. Did that answer your question?
I took a peek at TextEdit, looks like the only differences are that I have a frameworks folder and a library folder in "contents," and Textedit has a version.plist file in contents.My app: Contents _CodeSignature CodeResources Frameworks Sparkle.framework LaunchAtLogin.framework Library LoginItems MacOS myAppExec Resources myProblemExec Assets.car Base.Iproj storyboard1.storyboardc storyboard2.storyboardc Info.plist PkgInfoIs that what you were looking for?Okay, i'll make sure not to hack the code signing. I'm not sure about zsh, It only ever appears when I break the exec with the code signing hack.
Is there an easy way to post the bundle structure? Should I just type it out? Screenshot? I don't think I need Resource Access at all, and i'm currently not sure about Runtime Exceptions.
Interesting, Its definitely possible that one of those things could be the issue, as i'm not well versed in, well, any of them.The zsh was just what responds when the broken file is opened (the executable normally outputs data to command line). "exit; zsh: segmentation fault" But my main application doesn;t appear to be able to start the process at all, nothing happens.The sandbox isn't neccicary as far as I know, I was just under the impression that it's considered good practice. Developer ID. The application involves cryptocurrency, so I definitely don't want to get anywhere near the App Store. Thanks for the help.
Yes, that is correct.
Yes, it's a Macos application. The code is in AppDelegate. Is that the wrong place for it? I'm also a little confused about what setting comboBox.datasource = self accomplishes, it seems like a self evident statement to me so I must not be understanding its purpose. The combobox is in my main.storyboard, where should NSComboBoxDataSource functions be defined and what purpose would they serve? Thanks again for your help!