Page 3 of 43

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 3:11 pm
by Antonio Linares
Reemplazando los ficheros de cabecera en los que da error por los de la versión 3.2, entonces lo compila :-)

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 3:16 pm
by mastintin
Antonio , me estoy bajando el sdk del 4.1 ( me quedé en el del 3.1 ) y como son varios gb está tardando algo , en cuanto tenga los archivos en su sitio intento cogerte .... ( no creo que me de tiempo hoy , pues mas tarde tengo lio)

-------------------- edito -----------------
he visto justo ahora el mensaje anterior ...creo que debemos recapitular que archivos y versiones se necesitan .

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 4:00 pm
by Antonio Linares
Manuel,

Creo que habria que hacer una prueba con la 3.2 completa, basándonos en que el ejemplo de esa web a ti te ha funcionado bien.

He conseguido construir un EXE (minimo) completo y arranca, aunque de momento no hace nada. Voy a poner aqui el código que he usado (el iphone me anda dando errores de conexion wifi...)

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 4:04 pm
by Antonio Linares
ios.m
Code: Select all  Expand view
#import <UIKit/UIKit.h>                                                        
#define HB_DONT_DEFINE_BOOL                                                    
#include <hbapi.h>                                                              
#include <hbvm.h>                                                              
                                                                               
static NSAutoreleasePool * pool;                                                
                                                                               
HB_FUNC( CREATEPOOL )                                                          
{                                                                              
   pool = [ [ NSAutoreleasePool alloc ] init ];                                
}                                                                              
                                                                               
HB_FUNC( CREATEAPP )                                                            
{                                                                              
   UIApplicationMain( 0, nil, @"MainApp", @"MainApp" );                        
}        

@interface MainApp : UIApplication                                              
{                                                                              
}                                                                              
@end                                                                            
                                                                               
@implementation MainApp                                                        
- ( void ) applicationDidFinishLaunching : ( UIApplication * ) application      
{                                                                              
   PHB_SYMB symMain = hb_dynsymSymbol( hb_dynsymFindName( "MAIN" ) );          
                                                                               
   hb_vmPushSymbol( symMain );                                                  
   hb_vmPushNil();                                                              
   hb_vmDo( 0 );                                                                
                                                                               
   exit( 0 );                                                                  
}                                                                              
@end  
 


hello.prg
Code: Select all  Expand view
function Main()                                                                
                                                                               
   ? "Hello world from iOS"                                                    
                                                                               
return nil                                                                      
                                                                               
init procedure start                                                            
                                                                               
   CreatePool()                                                                
   CreateApp()                                                                  
                                                                               
return            
 

Puede ser que no se vea nada al arrancar la aplicación porque al crear el pool estamos en modo GUI... no se...

se puede terminar la aplicación haciendo killall hello desde otra ventana de terminal

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 4:14 pm
by Antonio Linares
Y modificar esto en build.sh:

Code: Select all  Expand view

echo linking...                                                                
gcc $1.o ios.o -o $1 -F/usr/include -L./../lib -L./../../harbour/harbour/harbour
/lib/darwin/gcc -lhbdebug -lhbvm -lhbrtl -lhblang -lhbrdd -lgttrm -lgtstd -lhbrt
l -lhbvm -lhbmacro -lrddntx -lrddcdx -lrddfpt -lhbsix -lhbcommon \              
    -framework CoreFoundation \                                                
    -framework Foundation \                                                    
    -framework UIKit \                                                          
    -framework CoreGraphics        
 

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 8:38 pm
by mastintin
En modo consola el hello.prg compila sin problemas .
Eso si para el harbour que tenemos es este mismo hilo tenemos que cambiar los path del build.sh
Code: Select all  Expand view

 
clear
 
if [ $# = 0 ]; then
   echo syntax: ./build.sh file [options...]
   exit
fi
echo compiling...
./../../harbour/bin/harbour $1 -n -I./../../harbour/include $2
if [ $? = 1 ]; then
   exit
fi  
echo compiling C module...
gcc $1.c -c -I./../../harbour/include
echo linking...
gcc $1.o -o $1 -L./../lib -L./../../harbour/lib -lhbdebug -lhbvm -lhbrtl -lhblang -lhbrdd -lgttrm -lgtstd -lhbrtl -lhbvm -lhbmacro -lrddntx -lrddcdx -lrddfpt -lhbsix -lhbcommon
rm $1.c
rm $1.o
 
echo done!
 

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 8:51 pm
by mastintin
Estoy parado en la compilacion de ios.m .

He puesto los frameworks del ios3.2 ...

y me da todos estos errorres :

Code: Select all  Expand view

iPhone-de-manuel:~/harbour/samples root# gcc -c -I./../../harbour/include -F/usr/include ios.m
In file included from /usr/include/UIKit.framework/Headers/UIResponder.h:10,
                 from /usr/include/UIKit.framework/Headers/UIView.h:9,
                 from /usr/include/UIKit.framework/Headers/UIActivityIndicatorView.h:8,
                 from /usr/include/UIKit.framework/Headers/UIKit.h:11,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIEvent.h:30: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIEvent.h:31: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIView.h:9,
                 from /usr/include/UIKit.framework/Headers/UIActivityIndicatorView.h:8,
                 from /usr/include/UIKit.framework/Headers/UIKit.h:11,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIResponder.h:40: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIResponder.h:58: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIResponder.h:59: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIActivityIndicatorView.h:8,
                 from /usr/include/UIKit.framework/Headers/UIKit.h:11,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIView.h:190: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIView.h:220: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIApplication.h:13,
                 from /usr/include/UIKit.framework/Headers/UIKit.h:13,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIDevice.h:67: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIDevice.h:68: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIDevice.h:69: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIDevice.h:71: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIDevice.h:72: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIDevice.h:74: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:13,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIApplication.h:161: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:17,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIButton.h:86: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIButton.h:87: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIDocumentInteractionController.h:12,
                 from /usr/include/UIKit.framework/Headers/UIKit.h:23,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIViewController.h:134: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIViewController.h:135: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIViewController.h:137: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIImagePickerController.h:9,
                 from /usr/include/UIKit.framework/Headers/UIKit.h:30,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UINavigationController.h:88: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UINavigationController.h:90: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UINavigationController.h:116: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:30,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIImagePickerController.h:60: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIImagePickerController.h:64: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIImagePickerController.h:65: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIImagePickerController.h:68: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIImagePickerController.h:69: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIImagePickerController.h:70: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:31,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIImageView.h:23: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIImageView.h:26: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIImageView.h:31: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:36,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIMenuController.h:38: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIMenuController.h:40: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:37,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UINavigationBar.h:56: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:46,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIPopoverController.h:114: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIPopoverController.h:118: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:50,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIScreen.h:36: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIScreen.h:37: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:52,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIScrollView.h:159: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UIScrollView.h:196: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:53,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UISearchBar.h:57: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UISearchBar.h:58: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UISearchBar.h:62: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UISearchBar.h:69: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UISearchBar.h:70: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UISearchBar.h:71: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:62,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UITabBarController.h:69: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UITableView.h:11,
                 from /usr/include/UIKit.framework/Headers/UIKit.h:64,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UITableViewCell.h:137: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UITableViewCell.h:139: warning: 'weak_import' attribute ignored
/usr/include/UIKit.framework/Headers/UITableViewCell.h:140: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:64,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UITableView.h:324: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:66,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UITableViewController.h:29: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:71,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UITextView.h:88: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:72,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIToolbar.h:45: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:73,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UITouch.h:55: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:77,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIWebView.h:54: warning: 'weak_import' attribute ignored
In file included from /usr/include/UIKit.framework/Headers/UIKit.h:78,
                 from ios.m:1:
/usr/include/UIKit.framework/Headers/UIWindow.h:60: warning: 'weak_import' attribute ignored
iPhone-de-manuel:~/harbour/samples root#


 

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 9:38 pm
by mastintin
Solucionado Cambiando el uikit.framework 3.2 de sdk de desarrollo por el proporcionado por el blog ....( sin los includes )
ya me ha compilado ios.m ...
paso al ejemplo hello en modo "gui" ...
intento compilar y me manda unos errores que aparentemente son del build.sh ...
mi build.sh
Code: Select all  Expand view

# ./build.sh
 
clear
 
if [ $# = 0 ]; then
   echo syntax: ./build.sh file [options...]
   exit
fi
echo compiling...
./../../harbour/bin/harbour $1 -n -I./../../harbour/include $2
if [ $? = 1 ]; then
   exit
fi  
echo compiling C module...
gcc $1.c -c -I./../../harbour/include
echo linking...
 gcc $1.o ios.o -o $1 -F/usr/include -L./../lib -L./../../harbour/lib -lhbdebug -lhbvm -lhbrtl -lhblang -lhbrdd -lgttrm -lgtstd -lhbrtl -lhbvm -lhbmacro -lrddntx -lrddcdx -lrddfpt -lhbsix -lhbcommon -framework CoreFoundation -framework Foundation -framework UIKit -framework CoreGraphics  
rm $1.c
rm $1.o
 
echo done!
 


la consola :
Code: Select all  Expand view

iPhone-de-manuel:~/harbour/samples root# ./build.sh hello
: command not found:
: command not found:
: command not found: clear
: command not found:
./build.sh: line 65: syntax error near unexpected token `fi'
'
/build.sh: line 65: `fi  
iPhone-de-manuel:~/harbour/samples root# ./build.sh hello
: command not found:
: command not found:
: command not found: clear
: command not found:
./build.sh: line 65: syntax error near unexpected token `fi'
'
/build.sh: line 65: `fi  
iPhone-de-manuel:~/harbour/samples root#

 

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 9:52 pm
by mastintin
Solucionado el problema del build.sh .... ahora compila y me tira estos errores:
Code: Select all  Expand view

compiling...
Harbour 2.1.0beta2 (Rev. 15642)
Copyright (c) 1999-2010, http://harbour-project.org/
Compiling 'hello.prg'...
Lines 12, Functions/Procedures 2
Generating C source output to 'hello.c'... Done.
compiling C module...
linking...
Undefined symbols:
  "_HB_FUN_CREATEPOOL", referenced from:
      _symbols_table in hello.o
  "_HB_FUN_CREATEAPP", referenced from:
      _symbols_table in hello.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
done!
iPhone-de-manuel:~/harbour/samples root#

 


Es como que no enlaza el ios.o con el resto de la aplicacion ....

por otro lado puede que se tenga que cambiar algo en el build.sh

gcc $1.o ios.o -o ./$1.app/$1 -F/usr/include ............

He investigado tambien el tema de crear archivos ipa con las aplicaciones generadas .
He cogido una aplicacion de iphone que realice para probar con el xcode y artesanalmente me he construido un archivo ipa de la aplicación .
Ahora el instalarla es tan facil como arrastrarla al itunes y sincronizar . Mañana voy a intentarlo con la aplicacion que generé con el ejemplo del blog a ver que me dice .
Por hoy lo dejo . Gracias por todo el interes que estas poniendo en este proyecto y a ver si alguien mas se anima.
Saludos.

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 11:14 pm
by Antonio Linares
He recordado que en las versiones recientes del iOS ya no es posible lanzar una aplicación gráfica desde el terminal y que ha de ser lanzada desde su desktop GUI (springboard).

De ahi que sea muy interesante el poder generar la aplicación y que se muestre en el springboard y que desde ahí la ejecutemos. Lo que estas investigando es muy util :-)

Re: he conseguido un iphone

PostPosted: Tue Oct 19, 2010 11:36 pm
by Antonio Linares
Manuel,

Ya que tenemos las librerias de Harbour para el iOS, ahora resulta muy fácil construir desde Mac usando el Harbour para Mac y enlazando con las librerias de Harbour-iOS :-)

Descarga el proyecto FivePhone desde http://code.google.com/p/fivephone/ y usa samples/buildmac.sh para construir. Ha hecho el ejecutable a la primera :-)

Ahora solo falta copiarlo al iPhone/iPad en un formato que nos permita lanzarlo desde el springboard...

Re: he conseguido un iphone

PostPosted: Wed Oct 20, 2010 6:48 am
by mastintin
De momento y hasta tener algo mas "concreto" unba forma de acerlo , y que funciona es usar el appinstall que viene con el ejemplo del blog ... creas una carpeta en el iphone ( la tengo en ~ ) y colocas en ella el appinstall y la aplicacion , en terminal :
./appinstall nombreapp y ya la tienes instalada para funcionar . Eso si no la puedes gestionar con el iTunes ... pero en eso estoy ahora mismo . Al medio dia cuando este en casa con mi mac intento lo de compilar con fivephone ...
Saludos.

Re: he conseguido un iphone

PostPosted: Wed Oct 20, 2010 6:51 am
by Antonio Linares
Manuel,

Lo he probado con el appinstall y se instala pero no consigo que funcione tutor01

Algo debe estar mal en el Info.plist o en la aplicación en si...

Re: he conseguido un iphone

PostPosted: Wed Oct 20, 2010 7:22 am
by mastintin
como intento , he creado un ipa con el programa de ejemplo del blog que he creado desde el iphone y que funciona .
En el itunes se coloca sin problema , no se si instala en el iphone , ya que este itunes no es con el que sincronizo y no quiero liar una buena . Si tu tienes manera de probar te paso el ipa en este enlace .
http://rapidshare.com/files/426110106/TabBar.ipa

Re: he conseguido un iphone

PostPosted: Wed Oct 20, 2010 7:42 am
by mastintin
Esto es el info.plist del ejemplo que funciona .... cambialo en tutor.app a ver si va :
Code: Select all  Expand view

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleDisplayName</key>
    <string>TabBarSample</string>
    <key>CFBundleExecutable</key>
    <string>TabBarSample</string>
    <key>CFBundleIconFile</key>
    <string></string>
    <key>CFBundleIdentifier</key>
    <string>com.yourcompany.iphone.TabBarSample</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>TabBarSample</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>UIDeviceFamily</key>
    <array>
        <string>1</string>
        <string>2</string>
    </array>
</dict>
</plist>