Skip to content

Release history and developer statement

ArtCut and Pro share core video-editing technology. The free edition includes advertising. Local replacement work addressed permission/consent ordering and startup/export reliability; upload and release of those fixes have not been confirmed. The app is expressly included even if it could not be selected among the form's five entries.

Status clarification · September 13, 2026

Before the September 2 Pending Termination Notice, EasyTallys was In Review. The other six listings — VPN XX, VPN XX PRO, SpellVPN Tool, SpellVPN Ultra, ArtCut and ArtCut Pro — were shown as Distributable.

The developer now reports that all seven apps have been removed from the public App Store, while their status records remain visible in App Store Connect. Storefront removal does not mean that the app records or platform/version statuses have disappeared. A visible status is not evidence of restored distribution or membership.

This clarification was supplied by the developer on September 13. It is not an independent live check of App Store Connect, an Apple receipt, or a change to the preserved September 12 source evidence.

Download status clarification (TXT)

What the inspected material supports

The compile-time AppVariant excerpt selects the free edition and advertising through ARTCUT_FREE. The tracking manager excerpt shows the inspected permission path. Neither excerpt proves that a particular replacement build was uploaded or approved.

Next steps / not yet verified as complete

We will verify the exact free-edition archive, consent sequence, advertising disclosures, and ordinary editing/export behavior. If Apple requires a unified listing, we are willing to consolidate the editions. We ask whether any specific ArtCut conduct contributed to the account action rather than assuming it was only a VPN-app issue.

Supporting evidence

E11

ArtCut / Pro: edition and tracking-permission paths

Compile-time differences and one permission path are shown. These do not prove framework linkage in historical archives, successful consent flows on devices, or upload of local fixes.

Selected excerpt

Source: VideoEditorPro/VideoEditorPro/App/AppVariant.swift · 1–22

Numbered source excerpt; selected lines preserved.

    1 | import Foundation
    2 | 
    3 | enum AppDistribution {
    4 |     case paid
    5 |     case freeWithAds
    6 | }
    7 | 
    8 | enum AppVariant {
    9 |     /// The App Store listing for the paid build. Keep this as a universal
   10 |     /// App Store URL so the storefront can localize the product name.
   11 |     static let proAppStoreURL = URL(string: "https://apps.apple.com/app/id6790354436")!
   12 | 
   13 | #if ARTCUT_FREE
   14 |     static let distribution: AppDistribution = .freeWithAds
   15 |     static let displaysAds = true
   16 |     static let displayName = "ArtCut"
   17 | #else
   18 |     static let distribution: AppDistribution = .paid
   19 |     static let displaysAds = false
   20 |     static let displayName = "ArtCutPro"
   21 | #endif
   22 | }
Original whole-file SHA-256
72e091896724be8dca7c2981a23f593c8b3e9a98dd3d4b1f361835180455cf76
Numbered excerpt SHA-256
5e59357e3959e55b04ba12ef0a8e229041ee6b9841f6a51ece760ba0c365eb38

Source: VideoEditorPro/VideoEditorPro/Services/TrackingAuthorizationManager.swift · 34–52

Numbered source excerpt; selected lines preserved.

   34 |     func requestIfNeededBeforeAdRequests() async -> TrackingAuthorizationState {
   35 |         guard AppVariant.displaysAds else { return .notRequired }
   36 | 
   37 | #if ARTCUT_FREE && canImport(AppTrackingTransparency)
   38 |         let current = map(status: ATTrackingManager.trackingAuthorizationStatus)
   39 |         guard current == .notDetermined else { return current }
   40 | 
   41 |         if let requestTask {
   42 |             return await requestTask.value
   43 |         }
   44 | 
   45 |         let task = Task { @MainActor in
   46 |             try? await Task.sleep(nanoseconds: 650_000_000)
   47 |             return await withCheckedContinuation { continuation in
   48 |                 ATTrackingManager.requestTrackingAuthorization { status in
   49 |                     continuation.resume(returning: Self.map(status: status))
   50 |                 }
   51 |             }
   52 |         }
Original whole-file SHA-256
06092d42bedd141bd32f96880f2e5acfd368d4e48a79d5b9d6f5039a3a52d982
Numbered excerpt SHA-256
9fa52ec7f8eb9066e92101a158c010f6c7b0d9d587246f96b2d30d8728141f8b

How to read this evidence

The record combines developer-confirmed release history, current local source excerpts, local metadata drafts, and two original developer-supplied form screenshots. These are different evidence types. No exact historical upload archives, Apple upload receipts, production service authorization documents, or new App Store approvals are included. A SHA-256 digest identifies the captured bytes; it does not certify that Apple reviewed or received them. Selected excerpts are not an exhaustive code or binary audit.

This is a public, sanitized record with identical content for all readers. It omits personal account identifiers, private correspondence, node credentials and working public subscription URLs. It is not password protected. Original materials can be provided privately to Apple through an appropriate channel if requested. Search-engine noindex is a preference, not access control.

Explanatory pages are available in English, Chinese and Russian. Source excerpts and original screenshots remain unchanged in their original languages; translations are not original evidence.

All evidence items →