You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于App因使用prefs:root="GraphicsServices.framework"遭拒的技术咨询

Fixing App Store Rejection for 2.5.1 (Non-Public API: GraphicsServices.framework)

Hey there, I’ve dealt with this exact rejection a few times before—let’s break down how to fix it and get your app approved quickly.

First, let’s recap the core issue from Apple’s rejection notice:

准则2.5.1 - 性能 - 软件要求 您的App使用或引用了以下非公开API:prefs:root="GraphicsServices.framework"。App Store禁止使用非公开API,因其变更可能导致用户体验下降。若后续提交仍使用或隐瞒该类API,可能导致苹果开发者账户被终止,及所有关联应用被移除……

Apple’s strict about private APIs because they can break without warning, so we need to fully eliminate any trace of this from your app. Here’s your step-by-step plan:

1. Track down where the private API is hiding

  • Run a full global search across your entire project (code files, plists, and third-party dependencies) for:
    • GraphicsServices.framework
    • prefs:root references tied to GraphicsServices
  • Start with your own code—if you added this directly, that’s an easy fix. If not, it’s almost certainly coming from an outdated third-party library (like old analytics tools, custom UI kits, or system utilities).

2. Remove or replace the private API

If it’s your own code:

Delete all calls to the private API right away. For common use cases, here’s the Apple-approved alternative:

  • If you were trying to link to system settings: Use the public UIApplicationOpenSettingsURLString API instead. This lets users jump directly to your app’s dedicated settings page (Apple restricts direct access to global system graphics settings). Example in Swift:
    if let settingsURL = URL(string: UIApplicationOpenSettingsURLString) {
        UIApplication.shared.open(settingsURL)
    }
    
  • If you were using GraphicsServices for graphics-related data: Swap it out for public APIs like UIScreen, CoreGraphics, or UIKit methods that handle the same task. Apple’s official docs have all the tools you need here.

If it’s a third-party library:

  • Check if the library has an updated version that removes the private API usage. Most reputable libraries fix these issues quickly once Apple flags them.
  • If no update exists, replace the library with a comparable alternative that only uses public APIs.

3. Double-check you’ve cleaned everything up

Don’t just assume it’s gone—verify to avoid another rejection:

  • Use Xcode’s Archive > Validate App tool before submitting. This runs a pre-check that catches most private API issues.
  • For a deeper scan, use the otool command on your compiled binary. Open Terminal, navigate to your app’s archive folder, and run:
    otool -v -s __TEXT __objc_methname YourAppName.app/YourAppName | grep GraphicsServices
    
    If no results appear, you’ve successfully removed the private API.

4. Submit with a clear note to reviewers

When you re-submit your app, add a message in the Notes to Reviewers section:

We have fully removed all references to the non-public GraphicsServices.framework API from our app. All functionality previously relying on this API has been replaced with Apple-approved public APIs, ensuring full compliance with App Store Guideline 2.5.1.

This helps reviewers quickly confirm you’ve addressed the issue.


内容的提问来源于stack exchange,提问作者Ciprian Rarau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 06:54:50