New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
iOS SDK9.3 - PrivateFrameworks issues #146
Comments
Xcode 7.3 removed all private frameworks from the SDK. For now, please download iOS 9.2 SDK from https://jbdevs.org/sdks/, extract to Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs and set TARGET to use that, or just download Xcode 7.2 again (https://developer.apple.com/downloads/) and use xcode-select to switch to it. |
Thanks! That solved my issue. |
Going to reopen this so people coming to report an issue will see it, and becase we do need to find a solution to this. |
@kirb When you say |
@0xdeafcafe Definitely should have explained that more, sorry. TARGET is a combination of 4 different configuration options related to the platform being built for. The default is In this case, you should edit TARGET = iphone::9.2:9.0 Which indicates that you are building for iOS, using SDK 9.2, and intending to support iOS 9.0 and newer. |
@kirb ah perfect. all working now. thanks! |
hmm.. ive got xcode 7.3 and i downloaded the 9.0 and 9.2 sdks into the SDKs folder.. and then set my ~/.theosrc to TARGET = iphone::9.2:9.0... but it still is complaining and pointing to the 9.3 SDK on make... hmmm... anywhere else to look? |
i think im just going to have to go to xcode 7.0.1. sounds like you cannot run older SDKs with 7.3 ... if i remove the other SDKs temporarily.. the compile complains that 9.0 SDK has been skipped because 9.3 is min version. |
I'm having the same issue, but I've pointed the TARGET var properly... |
Yeah, something isn’t right… will need to look into it. The alternative is |
Seems we don't have this problem with Xcode 7.3.1. Please double check to confirm, thanks! |
@snakeninny, 7.3.1 didn't bring back private frameworks. If a project successfully links for you, you’re probably just not linking any private frameworks. |
https://jbdevs.org/sdks/ appears to be dead. It redirects to youtube. It appears that Xcode 7.2 does not contain the private headers in the SDK anymore either. |
@bolencki13 Here is the replacement site: https://sdks.website |
Not sure if I am doing it wrong but the headers still don't seem present in the SDK. I checked iOS 9 and it is still throwing an error with |
@bolencki13, this header indeed does not exist: https://github.com/theos/headers/tree/master/Preferences. You must import each specific class you’re interested in using. |
This will require me to add the headers manually into these include rather than through the SDK? |
Private headers were never in the SDK. Public headers are unchanged. |
I'm running theos on iOS 9.3.3 and I got the same error when compiling my preference bundle with ios SDK 9.3:
However I included the .h files from https://github.com/theos/headers/tree/master/Preferences and added the Preferences.framework to the PrivateFrameworks folder in the SDK. |
@MegaCookie, yes, this is what this issue is about. Use of the iOS 9.2 SDK or older is the solution for now. |
After following everything in this thread I still couldn't get my project to compile with Preferences. I had one final solution: Terminate the After that everything compiled and I can see my preferences in Settings. |
Just published 9.3 sdk with private frameworks. You can place the sdk folder in $THEOS/sdks and do:
in ~/.theosrc |
Editing ~/.theosrc with vi command, other command line editor is giving errors. |
Is what is described here still the correct and recommended way of dealing with frameworks? I want to use the iOS 7 SDK and deploy to iOS 7 and up. To do that I have:
If I leave any of these steps out, it doesn't work. Is this how I am supposed to set this up? It seems strange that I am defining what SDK and deployment target I want to use in the makefile, but then have to do it again in the theosrc globally for all projects. I have also tried THEOS_PLATFORM_SDK_ROOT, but setting it outside of xcode didn't work either. I would also prefer to keep the SDKs separately from xcode so that I don't have to redownload them every time xcode is updated. |
@KimchaC, yes. Patched SDK (or older SDK) is basically mandatory at this point, unless you avoid linking private frameworks. At some point I’ll be adding $THEOS/sdks/ to the SDK search path (currently only |
Thanks, adding $THEOS/sdks/ would be much appreciated. In case someone else is confused, here is how I set it up without editing theosrc:
|
I followed KimchaC and another error appear: |
That error is because it can't find the sdk. If you tried to make the package before doing all the steps you would have got the same error. Did you make sure to update the symlink command? I had no problem downloading the 10.1 sdk and creating a symlink with:
Note there isn't a double // between Xcode.app/Contents, and there is a space between iphoneOS10.1sdk/ and /applications. Make sure theos is up to date as well. |
You should avoid modifying Xcode.app, and I’m pretty sure you can’t anyway as of Xcode 8 when SIP is enabled. Set SDKVERSION and SYSROOT in .theosrc as described in #146 (comment). |
As of bcd16b4, we now scan for SDKs in both Xcode.app and theos/sdks/. There is currently an issue with the logic that determines the latest available SDK, where Despite the bugs, I’m considering this fixed. Will add details on downloading/setting up a patched SDK to the installation wiki page. |
Hi,
i have just updated to the latest Xcode and iOS SDK9.3 and i get the following error when trying to make:
ld: warning: directory not found for option '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/PrivateFrameworks'
ld: framework not found Preferences
I checked under the location where the PrivateFrameworks is always located and it is not there anymore.
Did the PrivateFrameworks directory move or got deleted in the newest SDK?
The text was updated successfully, but these errors were encountered: