diff --git a/doc/100_Use_on_Ios.md b/doc/100_Use_on_Ios.md new file mode 100644 index 0000000..990e923 --- /dev/null +++ b/doc/100_Use_on_Ios.md @@ -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 +``` diff --git a/doc/mainpage.md b/doc/mainpage.md index 158ca06..b2b7010 100644 --- a/doc/mainpage.md +++ b/doc/mainpage.md @@ -105,6 +105,7 @@ Tutorals: {#lutin_mainpage_tutorial} - @ref lutin_concept - @ref lutin_use - @ref lutin_module + - @ref lutin_ios License (APACHE v2.0) {#lutin_mainpage_licence} @@ -138,3 +139,6 @@ Some other problem example: - 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. + + +[link macos account developper](https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/AddingYourAccounttoXcode/AddingYourAccounttoXcode.html) diff --git a/lutin/z_target/lutinTarget_IOs.py b/lutin/z_target/lutinTarget_IOs.py index 600b1ca..639e223 100644 --- a/lutin/z_target/lutinTarget_IOs.py +++ b/lutin/z_target/lutinTarget_IOs.py @@ -367,14 +367,14 @@ class Target(target.Target): debug.info("Install package '" + pkg_name + "'") debug.debug("------------------------------------------------------------------------") 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") - cmdLine = 'cd ewol/ios-deploy ; make ; cd ../.. ' + cmdLine = 'cd framework/tools/ios-deploy ; xcodemake ; cd ../.. ' 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.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) else: simulatorIdFile = ".iosSimutatorId_" + pkg_name + ".txt" @@ -424,14 +424,14 @@ class Target(target.Target): debug.info("log of iOs board") debug.debug("------------------------------------------------------------------------") 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") - cmdLine = 'cd ewol/ios-deploy ; make ; cd ../.. ' + cmdLine = 'cd framework/tools/ios-deploy ; xcodebuild ; cd ../.. ' 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.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) else: cmdLine = "tail -f ~/Library/Logs/iOS\ Simulator/7.1/system.log"