I have a CI setup where one job builds xctestrun files for tests and another job that uses tem to actually run tests. The setup worked fine with XCode 14 on macOS 13. Now after switching to macOS 14 and XCode 15.0.1 xcodebuild doesn't want to run tests anymore:
xcodebuild -destination 'generic/platform=iOS' -derivedDataPath DerivedData_Temporary/ -resultBundlePath './fastlane/test_output/APPName-iOS.xcresult' -testPlan 'APPName-Unit-All' -xctestrun 'DerivedData_Temporary/Build/Products/APPName_APPName-Unit-All_iphonesimulator17.0-arm64-x86_64.xctestrun' test-without-building
throws an error
xcodebuild: error: Failed to build workspace iOS with scheme APPName-iOS.: Scheme “APPName-iOS” does not have an associated test plan named “APPName-iOS-Unit-All”
Almost the same command for macOS works perfectly fine.
What does this error even mean? And how to fix it?
Post
Replies
Boosts
Views
Activity
There is an app, that is distributed on the web using Company A Developer ID certificate. Now this has to be transferred to Company B apple developer account.
There is a way to transfer apps that are distributed on the AppStore, but how to do it in case of Developer ID?
I have a workspace with several projects inside. Everything in git repository. I enable Authors view in the editor.
Actual result:
Files in some of the projects do have authors and everything works, while in other projects, it just writes Unable to Load Author Information. As far as I can see, this depends on the project. All files in one project show correct info, while all files in another don't show it at all. While all the projects in the workspace are in git repository and everything else works fine.
Expected result:
All files under git repository should show authors information from git regardless of the project.
Is there anything I can try to fix this or at least gather debug information that would be helpful for a bug report?
Is is possible to write data into NETunnelProviderProtocol's providerConfiguration inside network extension and read values in the app?
I can't find a way how to create a Developer ID Provisioning profile with Network Extension entitlements. On developer.apple.com I have App ID with "Network Extensions" selected. Then I create a Developer ID provisioning profile for this app.
When I try to export this app in xcode, I always get the same error:
"Profile doesn't match the entitlements file's value for the com.apple.developer.networking.networkextension entitlement."
PP entitlement for network extension looks like this:
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>packet-tunnel-provider-systemextension</string>
<string>app-proxy-provider-systemextension</string>
<string>content-filter-provider-systemextension</string>
<string>dns-proxy-systemextension</string>
<string>dns-settings</string>
</array>
Any ideas what's wrong?
Currently I'm using this code for running scheduled tasks inside NetworkExtension:
let timer = Timer(fireAt: nextRunTime, interval: 0, target: self, selector: #selector(timerFired), userInfo: nil, repeats: false)
RunLoop.main.add(timer, forMode: RunLoop.Mode.common)
It runs more or less ok, until it doesn't. If I'm connected to console app on mac and to debugger on xcode it seems to be running well. When I disconnect everything looks like after some time this stops working.
Am I doing something wrong? Is there any better way to run code inside NetworkExtension at predefined time in the future?
I'm debugging very rarely occuring problem in my NetworkExtension. For this I rely on logs being saved by OSLog:
import os.log
...
os_log("[TAG] %{public}s", log: OSLog.default, type: type, String(describing: msg))
After I download logs from the phone using log collect on my mac, I can see, that only logs made while phone was unlocked are persisted. If I filter logs for my process, I can see that something is going on, as a lot of other logs from my process are saved (like the ones with categories tcp, connection, boringssl, etc.), but not my custom logs made with os_log. My logs appear only around the time I unlock the phone.
Is it expected behaviour? Can I make it log all the time without exceptions?
I have two System Network Extensions that implement XPC for communication with app. While testing everything works fine, but from many users I get complains that app doesn't see extensions, even though users manually enable them in System Settings -> Security & Privacy.
From logs I can see that app asks to install extension: OSSystemExtensionRequest.activationRequest, then delegate gets request(_ , didFinishWithResult) call with case completed = 0 result. After that when app tries to communicate with extension NSXPCConnection.remoteObjectProxyWithErrorHandler calls callback with Couldn’t communicate with a helper application.
Any suggestions for debugging the issue are welcome!
We're having a problem, where user is not asked by the system to allow installing System Extension. OSSystemExtensionRequest.activationRequest is submited, and delegate receives requestNeedsUserApproval callback. But, in some cases users do not get the system modal asking them to open System Preferences and manually enable the extension. Looks like system shows the modal once, but if user just presses OK, then it's impossible to show this modal once more. Is there something that can be done to trigger modal every time?
PS. Looks like when developer mode for extensions is enabled, modals are opened every time app asks to install them.
As described in a few threads here, it is not possible to set IncludeAllNetworks to true on NEVPNProtocolIKEv2 if there are any Enterprise VPNs with NEVPNProtocolIKEv2 enabled, even if they are not used at that moment.
The problem I faced, is that system does not have any other VPN configs listed in System Preferences - Network, but connection still can't be established with error: Failed to register Personal IncludeAllNetworks VPN Session NESMIKEv2VPNSession due to Enterprise VPN session NESMVPNSession.
Is there any other place in the system where VPN configs can be found?
While debugging NEPacketTunnelProvider I found that it's startTunnel and stopTunnel are being run not on the first thread.
The question is can I use DispatchQueue.main in Network Extensions? Are there any things to watch out for when dealing with async code inside Network Extensions?
As documented in this thread, there is a hard memory limit for iOS Network Extensions.
Is there a memory limit for macOS System Network Extensions?
While debugging I found an error in console, that states that app was denied system-priviledge 1006. Where can I find a list describing system privileges to decode 1006 into something meaningful?
I'm trying to pass a password for connecting to VPN using sanboxed System NetworkExtension (with packet tunnel capability on debug or packet-tunnel-provider-systemextension on release version signed with DeveloperID). When system extension tries to read it from the keychain, SecItemCopyMatching returns errSecMDSError (-67674).
What can be a cause why System NetworkExtension can't read password from a reference?
macOS Catalina 10.15.7
App is sandboxed.
System Extension with Network extension is sandboxed (outgoing connections enabled on both app and extension). Has packet-tunnel-provider entitlement.