ApportableFoundation is an open source implementation of Apple's Foundation Framework that extends Apple's open sourced CoreFoundation CFLite implementation. When paired with Apportable's freely available SpriteBuilder Android plugin, this repository provides a buildable and runnable Foundation for the Android platform.
In addition to our appreciation to Apple for open sourcing CFLite, we owe a debt of gratitude to other Foundation open source implementations - notably GNUstep and Cocotron.
More generally, Apportable has been an active open source user and contributor throughout its history.
Thanks to everyone who has contributed to ApportableFoundation!
ApportableFoundation consists of three modules - Foundation, CoreFoundation, and CFNetwork. It also includes several private headers required to build these three modules.
-
System Requirements:
- Xcode 6
- OSX 10.9+
-
git clone [email protected]:apportable/Foundation.git
Building and running ApportableFoundation depend upon lower level include files and libraries that are available in the Xcode Plugin that is packaged in the SpriteBuilder Android Plugin.
-
Install the SpriteBuilder Android plugin.
-
Early versions of the SpriteBuilder Android plugin are missing Xcode templates.
- Check:
- ls -l /Library/SBAndroid/Developer/Xcode/Templates/Project\ Templates/Application/JNI\ Application.xctemplate
- If it doesn't exist:
- cp -r XcodeTemplates/JNI\ Application.xctemplate ~/Library/Developer/Xcode/Templates/Project\ Templates/Application
- Check:
Before building this repo, back up the installed version of the module you plan to build.
For example:
- mkdir backup
- cp -rp /"Library/SBAndroid/Application Support/Developer/Shared/Xcode/Platforms/Android.platform/Developer/SDKs/SBAndroid0.9.sdk/System/Library/Frameworks/Foundation.framework" backup
- cp -rp /"Library/SBAndroid/Application Support/Developer/Shared/Xcode/Platforms/Android.platform/Developer/SDKs/SBAndroid0.9.sdk/System/Library/Frameworks/CoreFoundation.framework" backup
- cp -rp /"Library/SBAndroid/Application Support/Developer/Shared/Xcode/Platforms/Android.platform/Developer/SDKs/SBAndroid0.9.sdk/System/Library/Frameworks/CFNetwork.framework" backup
To Build Foundation:
- Open System/Foundation/Foundation.xcodeproj
- Click the Build arrow in Xcode
- sudo rm -rf "/Library/SBAndroid/Application Support/Developer/Shared/Xcode/Platforms/Android.platform/Developer/SDKs/SBAndroid0.9.sdk/System/Library/Frameworks/Foundation.framework"
- sudo cp -rp ~/Library/Application\ Support/Developer/Shared/Xcode/Platforms/Android.platform/Developer/SDKs/SBAndroid0.9.sdk/System/Library/Frameworks/Foundation.framework "/Library/SBAndroid/Application Support/Developer/Shared/Xcode/Platforms/Android.platform/Developer/SDKs/SBAndroid0.9.sdk/System/Library/Frameworks"/
Similar for CoreFoundation and CFNetwork.
Note that the SpriteBuilder Android plugin must be installed.
- cd System/Foundation
- xcodebuild -config Debug
- or xcodebuild -config Release
- sudo rm -rf "/Library/SBAndroid/Application Support/Developer/Shared/Xcode/Platforms/Android.platform/Developer/SDKs/SBAndroid0.9.sdk/System/Library/Frameworks/Foundation.framework"
- sudo cp -rp ~/Library/Application\ Support/Developer/Shared/Xcode/Platforms/Android.platform/Developer/SDKs/SBAndroid0.9.sdk/System/Library/Frameworks/Foundation.framework "/Library/SBAndroid/Application Support/Developer/Shared/Xcode/Platforms/Android.platform/Developer/SDKs/SBAndroid0.9.sdk/System/Library/Frameworks"/
Similar for CoreFoundation and CFNetwork.
Note that the SpriteBuilder Android plugin must be installed.
Ask and answer questions on the Apportable Open Source Forum
Check out the Contributor's Guide