Showing posts with label iPhone SDK. Show all posts
Showing posts with label iPhone SDK. Show all posts

Monday, November 3, 2008

Personal Installation Guide for Ubuntu 8.10 in VMWare for iPhone / Android SDK development

(1) Download ubuntu-8-1.10-desktop-i386.iso (32 bit Intel i386 Desktop)
http://www.ubuntu.com/getubuntu/download
MD5 (ubuntu-8-1.10-desktop-i386.iso) = 24ea1163ea6c9f5dae77de8c49ee7c03

Installation is very easy just mount the iso image in the VMWare, and everything goes default. then install VMWare tools. If network does not work try command "sudo dhclient"

If you want to install Ubuntu 8.10 in Virtual PC 2007
see this guide
http://tungchingkai.blogspot.com/2008/11/how-to-install-ubuntu-81-in-virtual.html

(2) VMWare Settings : Harddisk Size 8G, Ram 512MB

(3) Purpose : sdk development on iPhone / Android
Allows samba mount, ssh / scp access
apache2 server with php5 support for sqlite3 db

(4) Add root access for useraccount without password (this does not work, I don't know why, so you still need password)
Ubuntu default root disabled, so you can disable password input by editing etc/sudoers
sudo visudo
Add this line (e.g. sdkuser is the default user account)
sdkuser ALL=(ALL) NOPASSWD:ALL

(5) install build essential packages so that you can compile llvm-gcc for iPhone toolchain SDK2.0

sudo apt-get update
sudo apt-get install build-essential bison flex


(6) install server packages so that you can have local webserver and ssh and samba server

sudo apt-get install apache2 php5 libapache2-mod-php5 php5-cli php5-common php5-cgi php5-sqlite openssh-server samba


Install php5-sqlite3
sudo apt-get install php-db php-pear
wget http://us.archive.ubuntu.com/ubuntu/pool/universe/p/php-sqlite3/php-sqlite3_0.5-1_i386.deb
sudo dpkg -i php-sqlite3_0.5-1_i386.deb


(7) Create Project folder for smb mount (guest login ok) so that you can use windows / smb mount the virtual machine folder

(assume sdkuser is the default user account)


mkdir -p /home/sdkuser/Projects
chmod 777 /home/sdkuser/Projects

sudoedit /etc/samba/smb.conf


and add the followings at the end

smb.conf: Select all

[Projects]
comment = Projects Folder Share
writable = yes
locking = no
path = /home/sdkuser/Projects
public = yes
browseable = yes
guest ok = yes
create mask = 0666
directory mask = 0777


Note : you have to restart samba server to make the new configuration effective
sudo /etc/init.d/samba restart

Update for Ubuntu 9 /10
You have to edit
sudo vi /etc/apt/sources.list
and uncomment these in order to install sun-java6-jdk
deb http://archive.canonical.com/ubuntu maverick partner
deb-src http://archive.canonical.com/ubuntu maverick partner



(8) install jdk6 so that you can compile Andriod app

sudo apt-get update
sudo apt-get install sun-java6-jdk



(9) Download Android SDK http://dl.google.com/android/android-sdk-linux_x86-1.0_r1.zip from http://code.google.com/android/download_list.html

install in ~/Android/

mkdir -p ~/Android/
sudo unzip ~/Desktop/android-sdk-linux_x86-1.0_r1.zip -d ~/Android/
sudo chown -R sdkuser:sdkuser ~/Andriod


Update for android-sdk 2.0 or above

mkdir -p ~/Android/
tar xzvf ~/Downloads/android-sdk_r12-linux_x86.tgz
~/Android/tools/android update sdk


create sd card & test emulator

~/Android/android-sdk-linux_x86-1.0_r1/tools/mksdcard -l SD500M 500M ~/Android/sd500m.img

~/Android/android-sdk-linux_x86-1.0_r1/tools/emulator -datadir ~/Android -scale 0.7 -sdcard ~/Android/sd500m.img &


(10) Download and Install Eclipse 3.4.1 (you can't use the debian package eclipse which is 3.2 only)
from http://www.eclipse.org/downloads/
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR1/eclipse-java-ganymede-SR1-linux-gtk.tar.gz

install in /usr/lib

cd /usr/lib; sudo tar -xzvf ~/Desktop/eclipse-java-ganymede-SR1-linux-gtk.tar.gz


Update for eclipse-java-helios
http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/heliossr2

mkdir -p ~/Android/
cd /usr/lib; sudo tar -xzvf ~/Downloads/eclipse-java-helios-SR2-linux-gtk.tar.gz


Add main menu & icon for eclipse in GNOME


sudoedit /usr/share/applications/eclipse.desktop


and save this

eclipse.desktop: Select all

[Desktop Entry]
Name=Eclipse
Comment=Develop applications in a variety of different programming languages
Exec=/usr/lib/eclipse/eclipse
Icon=eclipse48.png
Terminal=false
Type=Application
Categories=Development;
StartupNotify=true


There is no eclipse icon in the download file eclipse-java-ganymede-SR1-linux-gtk.tar.gz. You can get it from eclipse 3.2.2 package
and install it manually

download the eclipse 3.2.2 package
wget http://us.archive.ubuntu.com/ubuntu/pool/universe/e/eclipse/eclipse_3.2.2-5ubuntu2_i386.deb

extract the package and copy the icons to /usr/share/pixmaps/
dpkg -x eclipse_3.2.2-5ubuntu2_i386.deb tmp
sudo cp tmp/usr/share/pixmaps/* /usr/share/pixmaps/
rm -fr tmp


Install Android sdk plug-in for Eclipse
(based on http://code.google.com/android/intro/installing.html#installingplugin)
add this site and install in Eclipse
http://dl-ssl.google.com/android/eclipse/

Edit Eclipse's preference for Andriod (Window -> Preferences -> Android)

SDK location
/home/sdkuser/Android/android-sdk-linux_x86-1.0_r1/

emulator options
-scale 0.7 -sdcard /home/sdkuser/Android/sd500m.img

Test HelloActivity in Eclipse
(a) Create a New Android Project in Eclipse (File -> New -> Project... -> Android -> Android Project)
(b) Choose Create project from existing source and browse to ~/Android/android-sdk-linux_x86-1.0_r1/samples/HelloActivity
(c) Run HelloActivity as Android Application
(d) Then the emulator will start Hello, World! will be on the emulator screen

Note: Please don't set the workspace of Eclipse to the sample project folder
~/Android/android-sdk-linux_x86-1.0_r1/samples/
or else you will get error when importing project from existing source


Update for iphone toolchain4 for SDK4.x+
http://github.com/javacom/toolchain4
You need to install clang 2.7 or above in Ubuntu 8.10

wget http://archive.ubuntu.com/ubuntu/pool/universe/c/clang/clang_2.7-0ubuntu1_i386.deb
wget http://mirrors.us.kernel.org/ubuntu/pool/main/l/llvm-2.7/libllvm2.7_2.7-5ubuntu2_i386.deb
wget http://mirrors.us.kernel.org/ubuntu/pool/main/libf/libffi/libffi5_3.0.9-2ubuntu2_i386.deb




(11) Install iPhone llvm-gcc and toolchain SDK2.0
Refer to this article and download the file UpgradeToolChain2.tgz and build the llvm-gcc for iPhone
http://iphonesdkdev.blogspot.com/2008/10/how-to-install-llvm-gcc-for-iphone-sdk.html

Install ldid in Linux, so that you can fake codesign it

cd ~/Projects
wget http://svn.telesphoreo.org/trunk/data/ldid/ldid-1.0.476.tgz
tar -zxf ldid-1.0.476.tgz
cd ldid-1.0.476
g++ -I . -o util/ldid{,.cpp} -x c util/{lookup2,sha1}.c
sudo cp -a util/ldid /usr/bin


or here
wget http://www.telesphoreo.org/export/477/trunk/data/ldid/ldid-1.0.476.tgz

updated ldid source
wget http://svn.telesphoreo.org/trunk/data/ldid/ldid-1.0.610.tgz

Updates : If you compiled it in cgywin, you need to add (uint32_t) in the source code ldid.cpp that has ambiguous overload call error message like this

error: call of overloaded 'Swap(int)' is ambiguous


If you need to codesign the iPhone binary in Linux add this to your build script

export CODESIGN_ALLOCATE=/usr/toolchain2/pre/bin/arm-apple-darwin9-codesign_allocate; ldid -S $(PROJECTNAME)



(12) test apache2 and php so that you can see the php info page in the local webserver

In Firefox browser of Ubuntu enter this address
http://localhost/

enable php5 (sometimes you need this)
a2enmod php5

restart apache server
sudo /etc/init.d/apache2 restart

create this test.php script in /var/www

sudo chown -R sdkuser:sdkuser /var/www
echo "<?php phpinfo(); ?>" > /var/www/test.php


and see the php info in Firefox browser of Ubuntu
http://localhost/test.php

(13) create sqlite3 db
sqlite3 test.db: Select all


sudo chown -R sdkuser:sdkuser /var/www
cd /var/www
sqlite3 test.db
sqlite> create table test (id integer primary key, value text);
sqlite> insert into test (value) values('eenie');
sqlite>
sqlite> insert into test (value) values('meenie');
sqlite> insert into test (value) values('miny');
sqlite> insert into test (value) values('mo');
sqlite> select * from test;
sqlite>
sqlite> .exit


and test sqlite3 & php5-sqlite3 by using testdb.php script to test the access to sqlite3 db on webserver

(14) testdb.php
testdb.php: Select all


<// Version 0.01
<html>
<head><meta http-equiv="Content-Type" content="text-html; charset=UTF-8" /></head>
<title>iPhone Database</title>
<body>
<?php

$ip_dbpath[] = '/var/www/test.db';

// $ip_dbpath[] = '/var/www/sms.db';
// $ip_dbpath[] = '/var/www/call_history.db';
// $ip_dbpath[] = '/var/www/notes.db';
// $ip_dbpath[] = '/var/www/AddressBook.sqlitedb';
// $ip_dbpath[] = '/var/www/Calendar.sqlitedb';

// db location in iPhone /private/var/mobile/Library/SMS/sms.db
// db location in iPhone /private/var/mobile/Library/CallHistory/call_history.db
// db location in iPhone /private/var/mobile/Library/Notes/notes.db
// db location in iPhone /private/var/mobile/Library/AddressBook/AddressBook.sqlitedb
// db location in iPhone /private/var/mobile/Library/Calendar/Calendar.sqlitedb


$ip_dbdesc[] = 'test';

// $ip_dbdesc[] = 'SMS';
// $ip_dbdesc[] = 'Call History';
// $ip_dbdesc[] = 'Notes';
// $ip_dbdesc[] = 'Address Book';
// $ip_dbdesc[] = 'Calendar';

$ip_query[] = 'SELECT * from test order by 1';
// $ip_query[] = 'SELECT date, address, text FROM message order by 1 desc, 2;';
// $ip_query[] = 'SELECT date, address, duration FROM call order by 1 desc;';
// $ip_query[] = 'SELECT creation_date, data, title FROM Note inner join note_bodies on Note.ROWID = note_bodies.note_id order by 1;';
// $ip_query[] = 'SELECT First, Last, Middle, CreationDate, ModificationDate FROM ABPerson;';
// $ip_query[] = 'SELECT start_date, end_date, summary, location, description FROM Event order by 1, 2;';

// $dbcount = sizeof($ip_dbpath);
// if you uncomment the above db & query and add copy the iPhone db , you can list out the content of sqlitedb of iPhone
$dbcount = 1;

for ($dbnum=0;$dbnum<$dbcount;$dbnum++){

try {
$dbpath = $ip_dbpath[ $dbnum ];
$dbh = new PDO('sqlite:'.$dbpath);
$query = $ip_query[ $dbnum ];
$stmt = $dbh->prepare($query);
$stmt->execute();
}
catch (PDOException $e) {
die("Could not open database" . $e->getMessage());
}
$colcount = $stmt->columnCount();
echo "<h1>". $ip_dbdesc[ $dbnum ] . "</h1>";
echo "<table cellpadding=10 border=1>";

for ($i=0;$i<$colcount;$i++) {
$meta = $stmt->getColumnMeta($i);
echo "<td>".$meta["name"]."</td>";
}

while ($row = $stmt->fetch()) {
echo "<tr>";
for ($i=0;$i<$colcount;$i++) {
$meta = $stmt->getColumnMeta($i);
if ($meta["native_type"] == "null") {
echo "<td> </td>";
}
elseif (preg_match("/date$/i", $meta["name"])) {
echo "<td>". date("j M Y D g.i a", $row[$i])."</td>";
}
elseif (preg_match("/[call|sms]$/i", $meta["name"]) && $meta["name"] == "address" && strlen(rtrim($row[ $i])) == 8) {
echo "<td><A href='Tel:".$row[$i]."'>".$row[$i]."</A></td>";
}
else {
echo "<td>".$row[ $i]."</td>";
}
}
echo "</tr>";
}
echo "</table>";
}
?>
</body>
</html>


(15) Enjoy building app
Why to install apache2, php5 and php5-sqlite3 in Ubuntu ?

Because both iPhone and Andriod SDK use sqlite3 as database engine.
Webserver can be served for many purposes when testing including http get/post access and cydia repository as well.



Additional Notes
If you need to install flash plugin in firefox
sudo apt-get install flashplugin-nonfree

If you need to install java plugin in firefox
sudo apt-get install sun-java6-plugin

If you need to install xpdf
sudo apt-get install xpdf-reader

If you need to install jedit
sudo apt-get install jedit

If you want to install mysql, it will promot you to enter the root password of mysql during installation
sudo apt-get install mysql-server php5-mysql

use this to login mysql
mysql -u root -h localhost -p

To change sql root password from oldpassword to newpassword
mysqladmin -u root -poldpassword password newpassword

Create a new database (newsdb) and new user (newsuser) with password (newspassword)

mysql -u root -p
> CREATE DATABASE newsdb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
> GRANT ALL PRIVILEGES ON newsdb.* TO newsuser@localhost IDENTIFIED BY 'newspassword';
> FLUSH PRIVILEGES;
> QUIT

Saturday, May 24, 2008

iPhone Open Toolchain Header runs UIShowCase

The missing UIKit clasees of open toolchain headers for IPhone SDK is now partially solved. You can now build UIShowCase in your Open Toolchain Template in iPhone SDK.

Read this
http://www.hackint0sh.org/forum/showpost.php?p=297245&postcount=15

Wednesday, May 14, 2008

What is needed to be an iPhone programmer (firmware 2.0 OS)

Even if you are not a registered iPhone developer of Apple (US$99 program), you still can code and test your iPhone program in firmware 2.0

This is how:

(1) You need a machine running Mac OS X 10.5.2 with Intel CPU because you need to run iPhone SDK for the iPhone OS 2.0
there are several possibilities, e.g.
(a) you can get a Intel Mac with Mac OS X 10.5.2 (which I think is the easiest one and save a lot of troubles, thus you can put omore time in the learning of iPhone programming)
(b) Use the VMWare image (and use VMWare Workstation/Player for PC), read this, and install iPhone SDK in it. You need C2D Intel CPU and lots of RAM (2G) in your existing PC.
(c) Install OSX86 on PC (you must be a power user), read this forum on how http://www.hackint0sh.org/forum/forumdisplay.php?f=104

(2) Get the iPhone SDK from Apple which is free after registration with Apple.

(3) You need to read some books on Objective C and Foundation framework of Mac OS X, I think Oreilly has good source of books in this subject. This site also gives some tutorial exmaples on cocoa programming http://cocoadevcentral.com/

(4) Get a pwned iPhone with iPhone OS 2.0 firmware beta 3 (build 5A240d)
read this for the pwnage tools http://www.hackint0sh.org/forum/forumdisplay.php?f=146

(5) Read this Forum and use the Xcode template (open toolchain header) here to start some coding and testing on iPhone
http://www.hackint0sh.org/forum/showthread.php?t=38389

(6) get some project code (based on open toolchain) from the right menu of this blog to compile and test run on iPhone

(7) start coding your own idea in your own iPhone project.

Saturday, May 10, 2008

class-dump for iPhone SDK header file

http://iphone.freecoder.org/classdump_en.html

with this wonderful tool, you don't need to worry about header files problem any more
e.g.
put the class-dump binary (Mac OS X) in your bin and do this

class-dump -H /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.0.sdk/System/Library/Frameworks/UIKit.framework/UIKit

you will get the most updated header files in your current directory from the SDK

Tuesday, May 6, 2008

Two versions of Hello World (SDK headers vs Open Tool Chain headers)

It is possible to use Open Tool Chain Header with the SDK and the iPhone OS 2.0 SDK headers, this example gives these two version to compare

iPhone OS 2.0 SDK headers version
Code: Select all

//
// main.m
// HelloSDK
//
#import <UIKit/UIKit.h>
@interface MyView : UIView {
}
@end
@implementation MyView
- (void)drawRect:(CGRect)rect {
[[UIColor whiteColor] set];
[@"Hello SDK" drawInRect:CGRectMake(0, 100, 320, 50)
withFont:[UIFont fontWithName:@"Marker Felt" size:50]
lineBreakMode:UILineBreakModeMiddleTruncation
alignment:UITextAlignmentCenter];
}
@end

@interface HelloSDK2AppDelegate : NSObject {
UIWindow *window;
MyView *contentView;
}
@property (nonatomic, retain) UIWindow *window;
@property (nonatomic, retain) MyView *contentView;
@end

@implementation HelloSDK2AppDelegate
@synthesize window;
@synthesize contentView;

- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Create window
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

// Set up content view
self.contentView = [[[MyView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
[window addSubview:contentView];

// Show window
[window makeKeyAndVisible];
}

- (void)dealloc {
[contentView release];
[window release];
[super dealloc];
}
@end

int main(int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"HelloSDK2AppDelegate");
[pool release];
return retVal;
}




Open Tool Chain headers version
Code: Select all

/*
HelloToolChain.app
main.m
*/

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

// include for the sdk compiler and open toolchain headers
#ifndef UIKIT_UIFont_UIColor_H
#define UIKIT_UIFont_UIColor_H
typedef float CGFloat;
#import <UIKit/UIFont.h>
#import <UIKit/UIColor.h>
#endif

@interface HelloToolChain : UIApplication
{
}
@end

@implementation HelloToolChain
- (void) applicationDidFinishLaunching: (NSNotification *)aNotification
{
UIWindow *window = [[UIWindow alloc] initWithContentRect: [UIHardware fullScreenApplicationContentRect]];
UITextLabel *label = [[UITextLabel alloc] initWithFrame: CGRectMake(0, 100, 320, 50)];
[label setFont:[UIFont fontWithName:@"Marker Felt" size:50]];
[label setCentersHorizontally: YES];
[label setText:@"Hello ToolChain"];
[label setBackgroundColor:[UIColor blackColor]];
[label setColor:[UIColor whiteColor]];
UIView *mainView = [[UIView alloc] initWithFrame: [UIHardware fullScreenApplicationContentRect]];
[mainView addSubview: label];
[mainView becomeFirstResponder];
[window orderFront: self];
[window makeKeyAndVisible];
[window setContentView: mainView];
}
@end

int main(int argc, char *argv[]) {
int returnCode;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
returnCode = UIApplicationMain(argc, argv, [HelloToolChain class]);
[pool release];
return returnCode;
}

Monday, May 5, 2008

Xcode workspace

In order to use the Xcode workspace more efficiently, these are the additional guides as most of the times, a programmer will work on the text/code editor

(1) Use the View -> Zoom Editor in
when you select a source file e.g. main.m

(2) Use split button (grey square on the right) to create text/code editor window to create additional text/code editor view
when you are editing the source file

(3) Use pragma marks in your code, so that you can jump quickly to your code in the text/code editor window using the navigation bar
e.g.

#pragma mark -
#pragma mark PreferencesTable Datasource Methods
// MARK:
// TODO:
// FIXME:
// !!!:
// ???:


(4) Highlight the identifier and press "command+ double click" to jump definition

(5) use shortcut key "esc" for code completion

(6) View -> Text -> Wrap Lines

(7) Use code folding in text/code editor

Please goto Help -> Xcode workspace guide in Xcode environment for details on how to perform these functions

Saturday, April 19, 2008

My First iPhone firmware 2.0 application Embark

I have written a small application for firmware 2.0 beta 3 iPhone using the open tool chain header

This small application allows you to have place shortcut icon in homescreen for
telephone dial, sms, email or webpage




Requirements :
PWNED iPhone with firmware 2.0 beta 3 (build 5A240d)
SSH installed in your iPhone, so that you can install it via wifi

Details see this post
http://www.iphone.org.hk/cgi-bin/ch/topic_show.cgi?id=6264&h=1#27987

Application Binary can be downloaded from here

Friday, April 18, 2008

Using the Apple SDK with low-level toolchain APIs

Update and details here

Assume you have installed iPhone SDK beta 3 and want to use the toolchain APIs to port the existing iPhone Application to Firmware 2.0 beta 3 using Apple's SDK

(1) Install iPhone SDK beta 3 from Apple

(2) Install the toolchain headers as per instructions from here
But I have modified it for the Beta 3 SDK path as below


$ sudo mkdir -p /Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS2.0.sdk/
$ svn co http://iphone-dev.googlecode.com/svn/branches/include-1.2-sdk
$ cd include-1.2-sdk
$ ./configure --prefix=/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS2.0.sdk/
$ sudo sh install-headers.sh


(3) Get the following Template here, unzip it and put the "Tool Chain Build" folder under the following folder (you need to create this folder first),
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/iPhone Tool Chain

then you can see this Template when you create new project

(4) This template supports Build to device and release only, so you have to connect your iPhone to USB cable when build and go

(5) When using SDK framework to build old iPhone App, you would discover that some symbols will be missing when linking

(6) The Template also include MakeFile to build application that can be ssh to iPhone folder /Application

Wednesday, April 2, 2008

Monday, March 24, 2008

Open Tool Chain for apple SDK available now

This allows you to build the 1.2.0 iPhone arm binary from source code using Open Tool Chain and the low level APIs.

That means you must have a 1.2.0 firmware iPhone and Apple iPhone SDK to test.

Read this
http://www.zdziarski.com/

sdk header can be obtained from here
svn co http://iphone-dev.googlecode.com/svn/branches/include-1.2-sdk

this is how to setup the build environment
http://iphone-dev.org/howto:using_sdk_with_toolchain_headers

try to build this from source
cvs -z3 -d :pserver:cvs@cvs.zdziarski.com:/usr/local/cvsroot co nesapp

Sunday, March 9, 2008

Modify iPhone SDK simulator Aspen

Although you have to pay if you want to run the iPhone debugger and have to wait for firmware 1.2.o update in order to have SDK binary run in your iPhone.  This is what can be done in the iPhone SDK beta with simulator Aspen

(1) Add Camera icon in the Aspen Simulator (despite iSight is not working in Aspen)
copy iPhone's
/Applications/MobileSlideShow.app/Info.plist
to Mac's 
/Developer/Platforms/AspenSimulator.platform/Developer/SDKs/AspenSimulator1.2.sdk/Applications/MobileSlideShow.app/
(2) Import your camera roll from your iPhone to the Simulator
iPhone's
/var/mobile/Media/DCIM
to Mac's 
/Users/[yourusername]/Library/Application Support/Aspen Simulator/User/Media/DCIM
(3) Add webclip in Simulator and change the webclip icon and change background in the Simulator
/Users/[yourusername]/Library/Application Support/Aspen Simulator/User/Library/WebClips
(4) Develop your own programs in XCode 3.1 or install the sample application from http://developer.apple.com/iphone/samples/index.action and run them in the simulator
(5) Install 3rd-party program manually in Mac



No Music Version

If you find this info useful, please consider to $1 by clicking the Donate button.

Friday, March 7, 2008

My first Hello iPhone Program from SDK


Create a US iTunes account now,then you can get your iPhone Application from AppStore in June.