iPhone SDK
- MacBook, Mac OS X (10.5.2) Posted on Apr 21, 2008 12:24 PM Reply I have this question too (10) I have this question too Me too (10) Me too.
- The iPhone SDK provides developers with the same rich set of Application Programming Interfaces (APIs) and tools that Apple uses to create its native applications for iPhone and iPod® touch. “Developer reaction to the iPhone SDK has been incredible with more than 100,000 downloads in the first four days,” said Philip Schiller, Apple’s.
The iPhone/iPod Touch SDK provides the only avenue to sell an app via the iTunes app store, and since Apple sells computers with an OS and applications designed for it, Apple has less to gain with investing resources to port the iPhone/iPod Touch SDK over to Windows along with the required support for it. Download the SDK disk image. Luckily (for the code-fobic), there's a faster and much easier way to get a PPC Mac to run Apple's iPhone SDK version 2.2.1. Apocalypse Software has put. Iphone Sdk free download, and many more programs.
The iPhone SDK has finally arrived. Although the community has figured out how to put together apps in some very awkward ways, there's a real environment now. Not just real frameworks, but profiling tools, drag-and-drop UI creation, remote debugging, and a simulator. And normal people can run the apps.If you haven't watched the iPhone SDK event video, you should probably check it out. It's not a visual press release. There are some amazing demos in there that stretched my imagination of what's possible. The most interesting point, by the way, is that most of the demos are by third parties — many of which have never written Mac software before.
The Basics
1. The iPhone SDK itself is free. You just need to create an account. The formal iPhone developer program is $99. Enterprise customers that want to distribute apps on their own terms can join a different program for $299.
2. iPhone apps are written in Objective-C using Cocoa Touch — a Multi-Touch variant of the Cocoa framework. The development environment is Xcode and Interface Builder on Mac OS X.
3. Distribution is handled by Apple. Developers set the price of the app, including free. Developers receive 70% of the revenue, but don't have to handle hosting, credit card processing, and so on. If the app is free, neither the developer nor the user pay anything.
4. The version of the SDK which is available now is a pre-release version. The final version will be available in late June, alongside an OS update to iPhone itself. Until that time, the SDK is under NDA and the apps cannot be distributed to the general public.
5. All of the above applies to the iPod Touch as well.
iPhone OS Layers
According to the introduction video, the iPhone OS consists of four primary layers:
A. Core OS: Essentially, the kernel environment and low-level APIs. The kernel is the same as the one from the 'desktop' Mac OS X. There's also the library system, BSD networking, sockets, security, power management, KeyChain, certificates, the file system, and Bonjour.
B. Core Services: These are the general APIs that don't necessarily apply to user interface interaction. Collections, AddressBook, higher-level networking, higher-level file access, Core Location, Net Services, threading, preferences, URL utilities, and SQLite.
C. Media: Video, Audio and Images. Core Audio, OpenAL, audio playback/mixing/recording, bitmap and PDF support, Quartz 2D, Core Animation, and OpenGL ES. A lot of this is, of course, is hardware accelerated.
D. Cocoa Touch: High-level Multi-Touch event support, stock Multi-Touch controls, accelerometer support, view hierarchies, localization, alerts, WebView, People Picker, Image Picker and Camera.
Demos
Even I though I already knew about what the Mac OS X APIs provide, I was truly amazed at the demos. I think I had underestimated the power of the hardware until now. Spore was a big surprise entry, and it seems like it was practically designed for iPhone.
I was even excited about the Salesforce.com app — not because it's something I would use, but I was so thrilled to see a third-party developer who doesn't have any particular affiliation with the Mac actually 'get' the idea. In two weeks, no less.
The AppStore
I strongly suspect that many independent Mac developers never quite get off the ground because of the last mile: handling payments, registrations, license keys, and so on. The solutions are unclear and even the good ones are outside of the normal area of expertise of a Mac developer.
The iPhone AppStore is a brilliant solution to this. This gives both Apple and third party developers a reason to promote the store and the platform in general.
The better and more plentiful the apps are, the more valuable the platform is and potentially more devices that can be sold. The more Apple promotes the store and the apps in it, the more the developers can enjoy the revenue and recognition of their efforts.
And most importantly, a plan for actually generating sales makes it easier to justify the initial time investment of writing an app.
Some Less Obvious Points
It's easy to forget that all of this applies to iPod touch as well. This actually may be the sleeper feature because the iPod touch is only $299 and requires no contract.
Millions of iPods have been sold at the $250-$299 price point, and the basis for the future of this product line runs all of the same software as iPhone. Not only that, but all of the enterprise features will work on iPod touch as well. That in itself is big news.
So what we have is the newest iteration of the most successful consumer product in recent history now running Mac OS X and Cocoa, with enterprise-level features including Exchange integration. It fits in a pocket and knows your physical location.
Even better? You need a Mac to get in on the SDK. The sales that directly result from this will probably not make a significant impact, but it does have an impact on mindshare.
We're also seeing a glimpse of something else. With iPhone, developers will be coming in contact with Objective-C and Cocoa for the first time, starting to understand what the thinking is behind them. You can certainly see it in the eyes of the folks who put together the demos.
This article is mostly outdated, please read these instructions instead. |
This page contains instructions for installing Theos and preparing a new project.
- 3Setting Up Dependencies
- 4Installing Theos
- 5Creating a Project
Definitions
$THEOS
is the directory where Theos is installed on your machine. Theos is self-contained; that is, you simply download it anywhere on your computer and it's ready to go immediately.
Typically, the location of Theos one of these:
- /opt/theos, on OS X or Linux
- /var/theos, on iOS
- ~/theos, if you don't have permission to install Theos to one of the above
Requirements
- A modern operating system (Mac OS X, iOS [jailbroken], Windows [using Cygwin], and most variants of Linux should work) with the following set of utilities:
- curl
- git
- make
- openssh
- perl
- rsync
- dpkg (port or homebrew install on Mac OS X)
- python (if on Windows)
- Some form of a toolchain or official SDK
- Cydia mobilesubstrate
- Access to a terminal emulator and some knowledge of how to use it
- Objective-C knowledge
More detailed explanations of these requirements are given in the next section, and are dependent on the environment you use.
(If you've never used a command line before, it may be helpful to practice using it so that you have a better understanding of the commands you're about to run. This tutorial may be useful; it's targeted toward Linux, but almost all of the information is the same for the command line on OS X and iOS.)
Setting Up Dependencies
For Mac OS X
Mac OS X comes with most of the necessary tools (subversion, curl, and perl) by default.
You will still need compilation tools and the iOS SDK, and the easiest way to obtain both of these is by installing Xcode from the App Store.
Install dpkg via your installed package manager, which might be either brew install dpkg
or port install dpkg
.
Your package manager may also have ldid. Fink and Homebrew do. If not, compile and install it yourself:
Or download from one of these sources:
For Linux
Like OS X, most distributions come pre-packaged with the aforementioned tools. On Debian-based distros, APT can be used to install the tools like so:
If your distro uses RPM, the process is very similar.
Ensure you have dpkg and ldid (see above).
For iOS
Dependencies:
Theos as a package depends on bash, grep, dpkg, coreutils, ldid, rsync and make, so the utilities mentioned in the requirements are automatically installed.
Install a Toolchain:
Apple Iphone 6 Software Download
See On-device toolchains for details.
For Windows
To do: cygwin, perl, python. Use this.
Installing Theos
On Mac OS X or Linux
- Open a terminal window.
- Choose a location for Theos to be installed. If you are unsure, a good choice is /opt/theos.
- If you chose a location outside of your user's home directory, you will probably need to run some or all of the following commands with root permissions.
- Download the latest version of Theos:
- Using git:
- Add Theos environment variables to your
~/.bash_profile
(or the equivalent for your shell). Open~/.bash_profile
(create it if it does not exist) in your favorite editor and add this on the last line, replacing 'example' with your device's name (replacing spaces with dashes). If you prefer, you can also use your devices IP address. To find you IP, open settings, select wifi, then press the 'i' on the network you are currently connected to. From here you should be able to see your devices IP address:
Load this into the shell with. ~/.bash_profile
, or close the terminal window and launch a new one. - As the Substrate library does not come installed on these platforms nor bundled with Theos, copy
/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate
from the device to your local$THEOS/lib
folder and rename it tolibsubstrate.dylib
. (If you don't do this step, or if you use an old version of Substrate, or if something else goes wrong, you may get one of these error messages). Similarly, copy/Library/Frameworks/CydiaSubstrate.framework/Headers/CydiaSubstrate.h
to your local$THEOS/include
folder and rename it tosubstrate.h
. You can alternatively retrieve files directly from the package: ReplaceVERSION
in URL with installedmobilesubstrate
version, which can be found bydpkg -s mobilesubstrate
on the device:
On iOS
Follow the instructions here.
On Windows
To do. Use this.
Also for Linux and iOS (and other operating systems other than Mac OS X): Retrieving SDKs
If you aren't using OS X, you must download an iOS SDK. See Retrieving SDKs for details on this.
Take the SDK and put it in $THEOS/sdks
(if it does not exist, create it), with a folder name like iPhoneOS7.0.sdk. As of version 0.9.523, Theos accepts multiple SDKs in that folder.
Each SDK folder should have these folders: Developer, System, usr; and these files: ResourceRules.plist, Entitlements.plist, SDKSettings.plist.
Note that if no SDKs are provided, the following error will be displayed (also noted in the Troubleshooting page):
Creating a Project
Theos lets you create new projects based on templates using the New Instance Creator (NIC). You do not need to be root to do this step, nor should you be. Start the NIC wizard using the following command:
NIC will prompt you for all the necessary information before creating a project. Please make sure that the path to your current directory doesn't have spaces in it.
(If you get an error message saying 'Illegal instruction: 4', see this troubleshooting advice.)
NIC Example
Here is an example of what you will see when using the NIC to create a project (with user input shown in bold):
The above will create a folder ./iphonedevwiki in the current working directory - make sure you have permissions to create a folder.
Making your Project
When you have finished developing your tweak/app, you may want to distribute it, either to your own device, or to an external source.
When you are making the project, type this in the terminal, in your project folder:
This will generate a .deb file, which you can distribute to people or to repositories.
If you want to install the latest package, type:
It will then ask for your root password and install the .deb onto your device. If you haven't changed your root password, the default password is alpine. Make sure you change your root password, which you can do with passwd (see 'Root Password How-To' on the Cydia homepage for detailed instructions).
Some wifi spots firewall client devices from each other. That will result in your computer being unable to install onto your iDevice. If this is a problem your computer and your device won't be able to ping each other. It may work for you to set up ad-hoc network. On Mac OS X, under the WiFi menu, this is done with the 'Create Network' item. You will need to use static IP addressing.
Ios Sdk Download For Mac
If you are developing an application, you need to force the icon cache to be reloaded for your app's icon to show up. Restarting SpringBoard is not effective, since this does not rebuild the cache. Simply run:
Further Reading
You can learn how to do Makefiles with theos on http://uv.howett.net/ipf.html. Start over there.
For general advice on beginning development for jailbroken iOS, see Getting Started.
Getting Help
If you get error messages when compiling your projects, search for your error in Theos/Troubleshooting. It is generalized so it might not be a literal copy of your problem.
Download Ios Sdk
If you need further assistance, or if you have other questions about Theos itself, feel free to connect to #theos on irc.saurik.com using your preferred IRC client. If you don't already have a preferred IRC client, you can learn more here: IRC.