Xcode Cloud

RSS for tag

Automate workflows to test, analyze, build, and distribute your app, and integrate them with other developer tools, such as TestFlight and App Store Connect.

Xcode Cloud Documentation

Post

Replies

Boosts

Views

Activity

Feature Request: Socket Mode for Xcode Cloud Webhooks
Issue Description The current Xcode Cloud webhook functionality requires developers to expose a public URL to receive webhook events, which poses a challenge in environments with security restrictions or limited network accessibility. Many developers need to receive webhook events locally without exposing their servers to the public internet. Proposed Solution A feature similar to Slack’s "Socket Mode" would allow developers to receive webhook events over a WebSocket connection without exposing a public URL. This socket-based solution could offer a more secure, streamlined, and accessible way for developers to work with webhooks, especially in closed network environments.
2
3
180
3w
how to build pkg file with xcode cloud that is notarized and also has postinstall file?
I am creating a macOS app with the following requirements: Automatic Startup: After initial installation, the app should automatically start, even after the OS restarts. Notarized Installation: The installation package (.pkg) should be notarized to avoid user have to make security exception. In my current setup I’ve created a script, ci_scripts/ci_post_xcodebuild.sh, which uploads the package file $CI_APP_STORE_SIGNED_APP_PATH/<appName>.pkg to GitHub via Xcode Cloud. While I can successfully download the app, I’m encountering two main issues: Notarization (I assume): I’m unsure how to get Xcode Cloud to notarize the .pkg file. Currently, upon opening the .pkg file for the first time, users have to go to System Settings > Privacy & Security to allow an exception for the package, after which installation proceeds successfully on second try. I’d like to automate the notarization process to eliminate this extra step. Adding Additional Files to PKG installer: My current .pkg file only includes the app binary. I need to configure Xcode Cloud to include a postinstall script and a launchd daemon configuration file within the package. This would ensure that necessary files are set up on installation and that the app is properly registered as a launch daemon.
0
0
138
2w
Why is Toggle's value not changed in Xcode cloud?
In the code below, the check for the toggle value passed in my xcode. However, it failed in cloud, i.e., that value was still "0" after being tapped. func testToggle() throws { let app = XCUIApplication() app.launch() let fieldName = "MyToggle" let field = app.switches[fieldName] XCTAssertTrue(field.exists, "Field '\(fieldName)' should exist|debug = \(app.debugDescription)") let firstMatch = field.switches.firstMatch firstMatch.tap() #if FAILED_XCODE_CLOUD // Verify the toggle/switch is in the desired state XCTAssertEqual(firstMatch.value as? String, "1", "Field '\(fieldName)' should be ON|debug = \(app.debugDescription)") // "1" is On, "0" is Off #endif } In addition, I'd also like to ask why a traverse to firstMatch is needed?
0
0
67
2w
Unable to download artifacts from Xcode Cloud
I just discovered that I can no longer download any artifacts from Xcode Cloud, whether from newly built workflows or previous ones. When I try to download in Xcode, it crashes immediately. When downloading from App Store Connect, it redirects to an HTML page with the following content. {"message":"You are not authorized to access this team’s resources."} I've already tried re-logging into my Apple account. Is anyone else experiencing the same issue?
4
3
224
1w
Timeout Issues with Async Polling in Xcode Cloud
Hi, Our team uses Xcode Cloud to run unit tests, and since around November, we’ve been frequently experiencing timeouts with the following type of process: @Test func hogeTest() async { // do something hoge.do() // wait until done await wait(condition: { hoge.isDone }) // test result #expect(hoge.isSucceeded) } private func wait(condition: () async -> Bool, timeout: TimeInterval = 0.5, pollingInterval: TimeInterval = 0.01) async throws { let deadline = Date().addingTimeInterval(timeout) while Date() < deadline { if await condition() { return } try await Task.sleep(nanoseconds: UInt64(round(pollingInterval * TimeInterval(NSEC_PER_SEC)))) } Issue.record("timeout") } Although sleep is supposed to wait for only a few milliseconds, there are cases where it takes more than 10 seconds, leading to a timeout. What could be causing this instability in the sleep duration? Additionally, if there are other recommended ways to implement polling and waiting in Swift Testing, I would appreciate it if you could share them. A feedback report (FB15899163) has already been submitted. Best regards,
2
0
113
1w
Firebase and AppStoreConnect Broken with version mismatch
There was an updated tonight I assume to something and now I am getting this for all firebase modules when I push to App Store connect "Invalid sdk value. The value provided for the sdk portion of LC_BUILD_VERSION in proxie2.app/Frameworks/GoogleAppMeasurementIdentitySupport.framework/GoogleAppMeasurementIdentitySupport is 18.2 which is greater than the maximum allowed value of 18.1." now even when I revert back to suer old firebase packages I get the same errors no matter what please fix this asap...
6
1
152
1w
Xcode Cloud uses beta version when configured for latest release
My builds failed today with this error: Unsupported SDK or Xcode version. Your app was built with an SDK or version of Xcode that isn’t supported. Although you can use beta versions of SDKs and Xcode to build and upload apps to App Store Connect, you need to use the latest Release Candidates (RC) for SDKs and Xcode to submit the app. For details on currently supported SDKs and versions of Xcode, visit: https://developer.apple.com/news/releases. The thing is, I have Xcode Cloud configured to use the latest release. There is a separate configuration for "Latest beta or release", so why is it using the Xcode 16.2 Beta 3 build? This is clearly a beta. If you're going to give me an option to use the latest release, then it should do what it says.
1
0
88
1w