3

I recently upgraded my Xcode to version 7.3. When I compile my exisiting project I get this error message:

directory not found for option '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/PrivateFrameworks'

As per this post, private frameworks have been removed with Xcode 7.3. Any suggestions as to potential solutions?

newenglander
  • 2,019
  • 24
  • 55
aios
  • 405
  • 5
  • 14
  • 1
    I don't think there is much you can do; being labelled *Private* is a clear indication they were not there for your use. – trojanfoe Mar 23 '16 at 10:48
  • 2
    I copied Private framework folder from Xcode7.2 and placed at new Xcode path. It works. – aios Mar 23 '16 at 11:12
  • Why haven't you upvoted and accepted the answer below? – trojanfoe Apr 14 '16 at 07:18
  • My above comment itself the proper fix and I commented that prior to below answer. – aios Apr 14 '16 at 07:35
  • 1
    I have provided an alternate [solution to this problem in a related question here](http://stackoverflow.com/a/37001091/119114). It does not require that the private frameworks stay the same with future iOS release, as the solution below **does**. – Nate Aug 18 '16 at 08:05

1 Answers1

3

According to the Xcode 7.3 release notes:

The Apple private frameworks have been removed from the iOS, watchOS, and tvOS SDKs. If your application fails to link, make sure that you are not using any private frameworks. The use of private frameworks is an unsupported configuration and applications that use non-public APIs will be rejected by the App Store - see App Store Guideline 2.5. (22330301)

You have two options:

  1. Remove your dependency on these private frameworks.
  2. Copy the private frameworks from a previous version of Xcode and link with them. There is no guarantee they will continue to work on devices running iOS 9.3 and above.
JAL
  • 41,701
  • 23
  • 172
  • 300
  • 1
    My [answer here](http://stackoverflow.com/a/37001091/119114) sacrifices the simplicity of build-time linking, but allows you to keep pace with future changes to the Private Frameworks. – Nate Aug 18 '16 at 08:07