[DOC] add help to deploy on IOs

This commit is contained in:
Edouard DUPIN 2016-09-22 21:33:06 +02:00
parent aa96a415b5
commit 82e8946227
3 changed files with 124 additions and 8 deletions

112
doc/100_Use_on_Ios.md Normal file
View File

@ -0,0 +1,112 @@
Build and deploy for IOS {#lutin_ios}
========================
@tableofcontents
Deploy on IOs is a little complicated, due to the fact Apple demand a developper licence.
To deploy you need to buy a [developper licence](https://developer.apple.com/account) nearly 99€ / year
Step 1: deploy your application with Xcode {#lutin_ios_xcode}
==========================================
it can be conplicated to do the first deploy (register tablette:watch ... or user ...)
Then the best way is now to create your first game sample application with XCode and deploy it on your device ...
when all your problem are solved, I can help you...
**Note:**
```
To add a device, in xcode select your top project, and in the section "signing" select "automatic manage signing", select your team and activate your device ...
```
step 2: Build for IOs {#lutin_ios_build}
=====================
This step is simpliest... All is integrated:
Select the target IOs
```{.sh}
lutin -C -D -tIOs yourApplication?build
```
This is done .... now deploy ...
step 3: Deploy {#lutin_ios_deploy}
==============
Do it ... it does not work ...
```{.sh}
lutin -C -D -tIOs yourApplication?install
```
Appliocation ID
---------------
It miss some things to do:
create a reference of you application in [apple interface](https://developer.apple.com/account/ios/identifier/bundle/create)
your application id is:
```{.py}
get_compagny_type() + "." + get_compagny_name() + "." + module.get_name()
```
For example if you module is named: ```lutin_application.py```
And you set description:
```{.py}
def get_compagny_type():
return "com"
def get_compagny_name():
return "compagny NAME"
```
your id is: ```com.compagnyname.application```
When you have create the application, it will generate for you a unique ID, you can see it on the webpage, it is like: ```DFGDSFGSDFGS.com.compagnyname.application```
In your module definition you need to add:
```{.py}
my_module.set_pkg("APPLE_APPLICATION_IOS_ID", "DFGDSFGSDFGS");
```
Team signing ID
---------------
the second point to do is creating the file: ```.iosKey.txt``` in you root path of your workspace (where you execute lutin)
it will contain sothing like:
```
'iPhone Developer: Francis DUGENOUX (YRRQE5KGTH)'
```
you can optain it with executing:
```{.sh}
certtool y | grep "Developer"
```
Install:
--------
Now it works ...
```{.sh}
lutin -C -D -tIOs yourApplication?build
```

View File

@ -105,6 +105,7 @@ Tutorals: {#lutin_mainpage_tutorial}
- @ref lutin_concept - @ref lutin_concept
- @ref lutin_use - @ref lutin_use
- @ref lutin_module - @ref lutin_module
- @ref lutin_ios
License (APACHE v2.0) {#lutin_mainpage_licence} License (APACHE v2.0) {#lutin_mainpage_licence}
@ -138,3 +139,6 @@ Some other problem example:
- none is really simple to write. - none is really simple to write.
Then I create a simple interface that manage all I need. and written in python to permit to be faster on every platform. Then I create a simple interface that manage all I need. and written in python to permit to be faster on every platform.
[link macos account developper](https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/AddingYourAccounttoXcode/AddingYourAccounttoXcode.html)

View File

@ -367,14 +367,14 @@ class Target(target.Target):
debug.info("Install package '" + pkg_name + "'") debug.info("Install package '" + pkg_name + "'")
debug.debug("------------------------------------------------------------------------") debug.debug("------------------------------------------------------------------------")
if self.get_simulation() == False: if self.get_simulation() == False:
if tools.file_size("ewol/ios-deploy/ios-deploy") == 0: if tools.file_size("framework/tools/ios-deploy/build/Release/ios-deploy") == 0:
debug.print_element("tool", "ios-deploy", "<==", "external sources") debug.print_element("tool", "ios-deploy", "<==", "external sources")
cmdLine = 'cd ewol/ios-deploy ; make ; cd ../.. ' cmdLine = 'cd framework/tools/ios-deploy ; xcodemake ; cd ../.. '
multiprocess.run_command(cmdLine) multiprocess.run_command(cmdLine)
if tools.file_size("ewol/ios-deploy/ios-deploy") == 0: if tools.file_size("framework/tools/ios-deploy/build/Release/ios-deploy") == 0:
debug.error("Can not create ios-deploy external software ...") debug.error("Can not create ios-deploy external software ...")
debug.print_element("deploy", "iphone/ipad", "<==", "aplication") debug.print_element("deploy", "iphone/ipad", "<==", "aplication")
cmdLine = './ewol/ios-deploy/ios-deploy --bundle ' + self.get_staging_path(pkg_name) cmdLine = './framework/tools/ios-deploy/ios-deploy --bundle ' + os.path.join(self.get_staging_path(pkg_name),pkg_name + ".app")
multiprocess.run_command(cmdLine) multiprocess.run_command(cmdLine)
else: else:
simulatorIdFile = ".iosSimutatorId_" + pkg_name + ".txt" simulatorIdFile = ".iosSimutatorId_" + pkg_name + ".txt"
@ -424,14 +424,14 @@ class Target(target.Target):
debug.info("log of iOs board") debug.info("log of iOs board")
debug.debug("------------------------------------------------------------------------") debug.debug("------------------------------------------------------------------------")
if self.get_simulation() == False: if self.get_simulation() == False:
if tools.file_size("ewol/ios-deploy/ios-deploy") == 0: if tools.file_size("framework/tools/ios-deploy/ios-deploy") == 0:
debug.print_element("tool", "ios-deploy", "<==", "external sources") debug.print_element("tool", "ios-deploy", "<==", "external sources")
cmdLine = 'cd ewol/ios-deploy ; make ; cd ../.. ' cmdLine = 'cd framework/tools/ios-deploy ; xcodebuild ; cd ../.. '
multiprocess.run_command(cmdLine) multiprocess.run_command(cmdLine)
if tools.file_size("ewol/ios-deploy/ios-deploy") == 0: if tools.file_size("framework/tools/ios-deploy/build/Release/ios-deploy") == 0:
debug.error("Can not create ios-deploy external software ...") debug.error("Can not create ios-deploy external software ...")
debug.print_element("deploy", "iphone/ipad", "<==", "aplication") debug.print_element("deploy", "iphone/ipad", "<==", "aplication")
cmdLine = './ewol/ios-deploy/ios-deploy --debug --bundle ' + self.get_staging_path(pkg_name) cmdLine = './framework/tools/ios-deploy/build/Release/ios-deploy --debug --bundle ' + os.path.join(self.get_staging_path(pkg_name),pkg_name + ".app")
multiprocess.run_command(cmdLine) multiprocess.run_command(cmdLine)
else: else:
cmdLine = "tail -f ~/Library/Logs/iOS\ Simulator/7.1/system.log" cmdLine = "tail -f ~/Library/Logs/iOS\ Simulator/7.1/system.log"