[DEV] ios deployement on simulator and device OK

This commit is contained in:
Edouard DUPIN 2014-04-22 23:33:07 +02:00
parent 49c29fefbd
commit 27d665573a
9 changed files with 289 additions and 146 deletions

View File

@ -26,6 +26,7 @@ myLutinArg.add(lutinArg.ArgDefine("c", "compilator", list=[["clang",""],["gcc","
myLutinArg.add(lutinArg.ArgDefine("m", "mode", list=[["debug",""],["release",""]], desc="Compile in release or debug mode (default release)"))
myLutinArg.add(lutinArg.ArgDefine("r", "prj", desc="Use external project management (not build with lutin..."))
myLutinArg.add(lutinArg.ArgDefine("p", "package", desc="Disable the package generation (usefull when just compile for test on linux ...)"))
myLutinArg.add(lutinArg.ArgDefine("", "simulation", desc="simulater mode (availlable only for IOS)"))
myLutinArg.add_section("cible", "generate in order set")
localArgument = myLutinArg.parse()
@ -107,6 +108,7 @@ def Start():
generatePackage=True
# load the default target :
target = None
simulationMode=False
actionDone=False
#build with extern tool
externBuild=False
@ -116,6 +118,8 @@ def Start():
continue
elif argument.get_option_nName() == "package":
generatePackage=False
elif argument.get_option_nName() == "simulation":
simulationMode=True
elif argument.get_option_nName() == "prj":
externBuild=True
elif argument.get_option_nName() == "compilator":
@ -133,6 +137,7 @@ def Start():
compilator="gcc"
mode="release"
generatePackage=True
simulationMode=False
#remove previous target
target = None
elif argument.get_option_nName() == "mode":
@ -148,14 +153,14 @@ def Start():
else:
#load the target if needed :
if target == None:
target = lutinTarget.target_load(targetName, compilator, mode, generatePackage, externBuild)
target = lutinTarget.target_load(targetName, compilator, mode, generatePackage, externBuild, simulationMode)
target.build(argument.get_arg())
actionDone=True
# if no action done : we do "all" ...
if actionDone==False:
#load the target if needed :
if target == None:
target = lutinTarget.target_load(targetName, compilator, mode, generatePackage, externBuild)
target = lutinTarget.target_load(targetName, compilator, mode, generatePackage, externBuild, simulationMode)
target.build("all")
# stop all started threads
lutinMultiprocess.un_init()

View File

@ -66,7 +66,7 @@ class ArgDefine:
print(" -" + self.m_optionSmall + " / --" + self.m_optionBig)
elif self.m_optionSmall != "":
print(" -" + self.m_optionSmall)
elif self.m_optionSmall != "":
elif self.m_optionBig != "":
print(" --" + self.m_optionBig)
else:
print(" ???? ==> internal error ...")

View File

@ -682,6 +682,8 @@ class Module:
self.packageProp[variable] = value
elif "ADMOD_ID" == variable:
self.packageProp[variable] = value
elif "APPLE_APPLICATION_IOS_ID" == variable:
self.packageProp[variable] = value
else:
debug.error("not know pak element : '" + variable + "'")

View File

@ -5,11 +5,12 @@ import lutinTools
import lutinModule
class Target:
def __init__(self, name, typeCompilator, debugMode, generatePackage, arch, cross):
def __init__(self, name, typeCompilator, debugMode, generatePackage, arch, cross, sumulator=False):
if arch != "":
self.arch = "-arch " + arch
else:
self.arch = ""
self.sumulator = sumulator
self.cross = cross
self.name=name
self.endGeneratePackage = generatePackage
@ -299,10 +300,10 @@ class Target:
__startTargetName="lutinTarget"
def target_load(targetName, compilator, mode, generatePackage, externBuild):
def target_load(targetName, compilator, mode, generatePackage, externBuild, simulationMode):
theTarget = __import__(__startTargetName + targetName)
#try:
tmpTarget = theTarget.Target(compilator, mode, generatePackage)
tmpTarget = theTarget.Target(compilator, mode, generatePackage, simulationMode)
tmpTarget.set_use_of_extern_build_tool(externBuild)
return tmpTarget
#except:

View File

@ -9,7 +9,7 @@ import os
import sys
class Target(lutinTarget.Target):
def __init__(self, typeCompilator, debugMode, generatePackage):
def __init__(self, typeCompilator, debugMode, generatePackage, sumulator=False):
self.folder_ndk = os.getenv('PROJECT_NDK', "AUTO")
self.folder_sdk = os.getenv('PROJECT_SDK', "AUTO")
@ -49,7 +49,7 @@ class Target(lutinTarget.Target):
if not os.path.isdir(baseFolderX86):
debug.info("Gcc x86 pah does not exist !!!")
lutinTarget.Target.__init__(self, "Android", typeCompilator, debugMode, generatePackage, arch, cross)
lutinTarget.Target.__init__(self, "Android", typeCompilator, debugMode, generatePackage, arch, cross, sumulator)
# for gcc :

View File

@ -7,16 +7,22 @@ import stat
import lutinExtProjectGeneratorXCode
import lutinMultiprocess
import random
import re
class Target(lutinTarget.Target):
def __init__(self, typeCompilator, debugMode, generatePackage):
cross = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/"
def __init__(self, typeCompilator, debugMode, generatePackage, sumulator=False):
if typeCompilator == "gcc":
debug.info("compile only with clang for IOs");
typeCompilator = "clang"
# http://biolpc22.york.ac.uk/pub/linux-mac-cross/
# http://devs.openttd.org/~truebrain/compile-farm/apple-darwin9.txt
lutinTarget.Target.__init__(self, "IOs", typeCompilator, debugMode, generatePackage, "i386", cross)
if sumulator == True:
arch = "i386"
cross = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/"
else:
arch="arm64"
cross = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/"
lutinTarget.Target.__init__(self, "IOs", typeCompilator, debugMode, generatePackage, arch, cross, sumulator)
# remove unneeded ranlib ...
self.ranlib=""
@ -28,11 +34,16 @@ class Target(lutinTarget.Target):
self.suffix_lib_dynamic='.dylib'
self.suffix_binary=''
self.suffix_package=''
self.sysroot = "-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk"
if self.sumulator == True:
self.sysroot = "-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk"
self.global_flags_ld.append("-mios-simulator-version-min=7.0")
self.global_flags_cc.append("-mios-simulator-version-min=7.0")
else:
self.sysroot = "-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk"
self.global_flags_ld.append("-miphoneos-version-min=7.0")
self.global_flags_cc.append("-miphoneos-version-min=7.0")
self.global_flags_ld.append([
"-mios-simulator-version-min=7.0",
"-Xlinker",
"-objc_abi_version",
"-Xlinker 2",
@ -42,7 +53,6 @@ class Target(lutinTarget.Target):
"-fobjc-arc",
"-fobjc-link-runtime"])
self.global_flags_cc.append("-mios-simulator-version-min=7.0")
self.global_flags_m.append("-fobjc-arc")
#self.global_flags_m.append("-fmodules")
@ -64,105 +74,117 @@ class Target(lutinTarget.Target):
and pkgProperties["ICON"] != "":
lutinTools.copy_file(pkgProperties["ICON"], self.get_staging_folder_data(pkgName) + "/icon.icns", True)
# http://www.sandroid.org/imcross/#Deployment
infoFile=self.get_staging_folder(pkgName) + "/Info.plist"
debug.print_element("pkg", "PkgInfo", "<==", "APPL????")
infoFile = self.get_staging_folder(pkgName) + "/PkgInfo"
# Create the info file
tmpFile = open(infoFile, 'w')
tmpFile.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
tmpFile.write("<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n")
tmpFile.write("<plist version=\"1.0\">\n")
tmpFile.write(" <dict>\n")
tmpFile.write(" <key>CFBundleDevelopmentRegion</key>\n")
tmpFile.write(" <string>en</string>\n")
tmpFile.write(" <key>CFBundleDisplayName</key>\n")
tmpFile.write(" <string>" + pkgProperties["NAME"] + "</string>\n")
tmpFile.write(" <key>CFBundleExecutable</key>\n")
tmpFile.write(" <string>" + pkgName + "</string>\n")
tmpFile.write(" <key>CFBundleIdentifier</key>\n")
tmpFile.write(" <string>com." + pkgProperties["COMPAGNY_NAME2"] + "." + pkgName + "</string>\n")
tmpFile.write("APPL????")
tmpFile.flush()
tmpFile.close()
debug.print_element("pkg", "Info.plist", "<==", "Package properties")
# http://www.sandroid.org/imcross/#Deployment
dataFile = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
dataFile += "<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"
dataFile += "<plist version=\"1.0\">\n"
dataFile += " <dict>\n"
dataFile += " <key>CFBundleDevelopmentRegion</key>\n"
dataFile += " <string>en</string>\n"
dataFile += " <key>CFBundleDisplayName</key>\n"
dataFile += " <string>" + pkgProperties["NAME"] + "</string>\n"
dataFile += " <key>CFBundleExecutable</key>\n"
dataFile += " <string>" + pkgName + "</string>\n"
dataFile += " <key>CFBundleIdentifier</key>\n"
dataFile += " <string>com." + pkgProperties["COMPAGNY_NAME2"] + "." + pkgName + "</string>\n"
"""
tmpFile.write(" <key>CFBundleIconFile</key>\n")
tmpFile.write(" <string>icon.icns</string>\n")
dataFile += " <key>CFBundleIconFile</key>\n"
dataFile += " <string>icon.icns</string>\n"
"""
tmpFile.write(" <key>CFBundleInfoDictionaryVersion</key>\n")
tmpFile.write(" <string>6.0</string>\n")
tmpFile.write(" <key>CFBundleName</key>\n")
tmpFile.write(" <string>" + pkgName + "</string>\n")
tmpFile.write(" <key>CFBundlePackageType</key>\n")
tmpFile.write(" <string>APPL</string>\n")
tmpFile.write(" <key>CFBundleShortVersionString</key>\n")
tmpFile.write(" <string>1.0</string>\n")
tmpFile.write(" <key>CFBundleSignature</key>\n")
tmpFile.write(" <string>????</string>\n")
tmpFile.write(" <key>CFBundleSupportedPlatforms</key>\n")
tmpFile.write(" <array>\n")
tmpFile.write(" <string>iPhoneSimulator</string>\n")
tmpFile.write(" </array>\n")
"""
tmpFile.write(" <key>CFBundleVersion</key>\n")
tmpFile.write(" <string>1.0</string>\n")
"""
tmpFile.write(" <key>DTPlatformName</key>\n")
tmpFile.write(" <string>iphonesimulator</string>\n")
tmpFile.write(" <key>DTSDKName</key>\n")
tmpFile.write(" <string>iphonesimulator7.0</string>\n")
"""
tmpFile.write(" <key>LSRequiresIPhoneOS</key>\n")
tmpFile.write(" <true/>\n")
"""
tmpFile.write(" <key>UIDeviceFamily</key>\n")
tmpFile.write(" <array>\n")
tmpFile.write(" <integer>1</integer>\n")
tmpFile.write(" <integer>2</integer>\n")
tmpFile.write(" </array>\n")
"""
tmpFile.write(" <key>UILaunchImages</key>\n")
tmpFile.write(" <array>\n")
tmpFile.write(" <dict>\n")
tmpFile.write(" <key>UILaunchImageMinimumOSVersion</key>\n")
tmpFile.write(" <string>7.0</string>\n")
tmpFile.write(" <key>UILaunchImageName</key>\n")
tmpFile.write(" <string>LaunchImage-700-568h</string>\n")
tmpFile.write(" <key>UILaunchImageOrientation</key>\n")
tmpFile.write(" <string>Portrait</string>\n")
tmpFile.write(" <key>UILaunchImageSize</key>\n")
tmpFile.write(" <string>{320, 568}</string>\n")
tmpFile.write(" </dict>\n")
tmpFile.write(" </array>\n")
"""
"""
tmpFile.write(" <key>UIMainStoryboardFile</key>\n")
tmpFile.write(" <string>Main_iPhone</string>\n")
tmpFile.write(" <key>UIMainStoryboardFile~ipad</key>\n")
tmpFile.write(" <string>Main_iPad</string>\n")
"""
tmpFile.write(" <key>UIRequiredDeviceCapabilities</key>\n")
tmpFile.write(" <array>\n")
tmpFile.write(" <string>armv7</string>\n")
tmpFile.write(" </array>\n")
tmpFile.write(" <key>UIStatusBarHidden</key>\n")
tmpFile.write(" <true/>\n")
tmpFile.write(" <key>UISupportedInterfaceOrientations</key>\n")
tmpFile.write(" <array>\n")
tmpFile.write(" <string>UIInterfaceOrientationPortrait</string>\n")
tmpFile.write(" <string>UIInterfaceOrientationPortraitUpsideDown</string>\n")
tmpFile.write(" <string>UIInterfaceOrientationLandscapeLeft</string>\n")
tmpFile.write(" <string>UIInterfaceOrientationLandscapeRight</string>\n")
tmpFile.write(" </array>\n")
tmpFile.write(" <key>UISupportedInterfaceOrientations~ipad</key>\n")
tmpFile.write(" <array>\n")
tmpFile.write(" <string>UIInterfaceOrientationPortrait</string>\n")
tmpFile.write(" <string>UIInterfaceOrientationPortraitUpsideDown</string>\n")
tmpFile.write(" <string>UIInterfaceOrientationLandscapeLeft</string>\n")
tmpFile.write(" <string>UIInterfaceOrientationLandscapeRight</string>\n")
tmpFile.write(" </array>\n")
tmpFile.write(" </dict>\n")
tmpFile.write("</plist>\n")
tmpFile.write("\n\n")
dataFile += " <key>CFBundleInfoDictionaryVersion</key>\n"
dataFile += " <string>6.0</string>\n"
dataFile += " <key>CFBundleName</key>\n"
dataFile += " <string>" + pkgName + "</string>\n"
dataFile += " <key>CFBundlePackageType</key>\n"
dataFile += " <string>APPL</string>\n"
dataFile += " <key>CFBundleSignature</key>\n"
dataFile += " <string>????</string>\n"
dataFile += " <key>CFBundleSupportedPlatforms</key>\n"
dataFile += " <array>\n"
dataFile += " <string>iPhoneSimulator</string>\n"
dataFile += " </array>\n"
dataFile += " \n"
dataFile += " <key>CFBundleShortVersionString</key>\n"
dataFile += " <string>"+pkgProperties["VERSION"]+"</string>\n"
dataFile += " <key>CFBundleVersion</key>\n"
dataFile += " <string>"+pkgProperties["VERSION_CODE"]+"</string>\n"
dataFile += " \n"
dataFile += " <key>CFBundleResourceSpecification</key>\n"
dataFile += " <string>ResourceRules.plist</string>\n"
if self.sumulator == False:
dataFile += " <key>LSRequiresIPhoneOS</key>\n"
dataFile += " <true/>\n"
else:
dataFile += " <key>DTPlatformName</key>\n"
dataFile += " <string>iphonesimulator</string>\n"
dataFile += " <key>DTSDKName</key>\n"
dataFile += " <string>iphonesimulator7.0</string>\n"
dataFile += " \n"
dataFile += " <key>UIDeviceFamily</key>\n"
dataFile += " <array>\n"
dataFile += " <integer>1</integer>\n"
dataFile += " <integer>2</integer>\n"
dataFile += " </array>\n"
dataFile += " <key>UIRequiredDeviceCapabilities</key>\n"
dataFile += " <array>\n"
dataFile += " <string>armv7</string>\n"
dataFile += " </array>\n"
dataFile += " <key>UIStatusBarHidden</key>\n"
dataFile += " <true/>\n"
dataFile += " <key>UISupportedInterfaceOrientations</key>\n"
dataFile += " <array>\n"
dataFile += " <string>UIInterfaceOrientationPortrait</string>\n"
dataFile += " <string>UIInterfaceOrientationPortraitUpsideDown</string>\n"
dataFile += " <string>UIInterfaceOrientationLandscapeLeft</string>\n"
dataFile += " <string>UIInterfaceOrientationLandscapeRight</string>\n"
dataFile += " </array>\n"
dataFile += " <key>UISupportedInterfaceOrientations~ipad</key>\n"
dataFile += " <array>\n"
dataFile += " <string>UIInterfaceOrientationPortrait</string>\n"
dataFile += " <string>UIInterfaceOrientationPortraitUpsideDown</string>\n"
dataFile += " <string>UIInterfaceOrientationLandscapeLeft</string>\n"
dataFile += " <string>UIInterfaceOrientationLandscapeRight</string>\n"
dataFile += " </array>\n"
dataFile += " </dict>\n"
dataFile += "</plist>\n"
dataFile += "\n\n"
infoFile = self.get_staging_folder(pkgName) + "/Info.plist"
# Create the info file
tmpFile = open(infoFile, 'w')
tmpFile.write(dataFile)
tmpFile.flush()
tmpFile.close()
"""
builtin-infoPlistUtility
infoFile = self.get_staging_folder(pkgName) + "/" + pkgName + "-Info.plist"
# Create the info file
tmpFile = open(infoFile, 'w')
tmpFile.write(dataFile)
tmpFile.flush()
tmpFile.close()
cmdLine = "builtin-infoPlistUtility "
cmdLine += " " + self.get_staging_folder(pkgName) + "/" + pkgName + "-Info.plist "
cmdLine += " -genpkginfo " + self.get_staging_folder(pkgName) + "/PkgInfo"
cmdLine += " -expandbuildsettings "
cmdLine += " -format binary "
if self.sumulator == False:
cmdLine += " -platform iphonesimulator "
else:
cmdLine += " -platform iphoneos "
cmdLine += " -o " + self.get_staging_folder(pkgName) + "/" + "Info.plist"
lutinMultiprocess.run_command(cmdLine)
"""
"""
/Users/edouarddupin/dev/exampleProjectXcode/projectName/projectName/projectName-Info.plist
-genpkginfo
/Users/edouarddupin/Library/Developer/Xcode/DerivedData/projectName-gwycnyyzohokcmalgodeucqppxro/Build/Products/Debug-iphonesimulator/projectName.app/PkgInfo
@ -171,15 +193,64 @@ class Target(lutinTarget.Target):
-platform iphonesimulator
-additionalcontentfile /Users/edouarddupin/Library/Developer/Xcode/DerivedData/projectName-gwycnyyzohokcmalgodeucqppxro/Build/Intermediates/projectName.build/Debug-iphonesimulator/projectName.build/assetcatalog_generated_info.plist
-o /Users/edouarddupin/Library/Developer/Xcode/DerivedData/projectName-gwycnyyzohokcmalgodeucqppxro/Build/Products/Debug-iphonesimulator/projectName.app/Info.plist
"""
-additionalcontentfile /Users/edouarddupin/Library/Developer/Xcode/DerivedData/zdzdzd-bjuyukzpzhnyerdmxohjyuxfdllv/Build/Intermediates/zdzdzd.build/Debug-iphoneos/zdzdzd.build/assetcatalog_generated_info.plist -o /Users/edouarddupin/Library/Developer/Xcode/DerivedData/zdzdzd-bjuyukzpzhnyerdmxohjyuxfdllv/Build/Products/Debug-iphoneos/zdzdzd.app/Info.plist
"""
#/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /Users/edouarddupin/Library/Developer/Xcode/DerivedData/projectName-gwycnyyzohokcmalgodeucqppxro/Build/Products/Debug-iphonesimulator/projectName.app/projectName -o /Users/edouarddupin/Library/Developer/Xcode/DerivedData/projectName-gwycnyyzohokcmalgodeucqppxro/Build/Products/Debug-iphonesimulator/projectName.app.dSYM
infoFile=self.get_staging_folder(pkgName) + "/PkgInfo"
debug.print_element("pkg", "ResourceRules.plist", "<==", "Resources autorisation")
dataFile = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
dataFile += "<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"
dataFile += "<plist version=\"1.0\">\n"
dataFile += " <dict>\n"
dataFile += " <key>rules</key>\n"
dataFile += " <dict>\n"
dataFile += " <key>.*</key>\n"
dataFile += " <true/>\n"
dataFile += " <key>Info.plist</key>\n"
dataFile += " <dict>\n"
dataFile += " <key>omit</key>\n"
dataFile += " <true/>\n"
dataFile += " <key>weight</key>\n"
dataFile += " <real>10</real>\n"
dataFile += " </dict>\n"
dataFile += " <key>ResourceRules.plist</key>\n"
dataFile += " <dict>\n"
dataFile += " <key>omit</key>\n"
dataFile += " <true/>\n"
dataFile += " <key>weight</key>\n"
dataFile += " <real>100</real>\n"
dataFile += " </dict>\n"
dataFile += " </dict>\n"
dataFile += " </dict>\n"
dataFile += "</plist>\n"
dataFile += "\n\n"
infoFile = self.get_staging_folder(pkgName) + "/ResourceRules.plist"
# Create the info file
tmpFile = open(infoFile, 'w')
tmpFile.write("APPL????")
tmpFile.write(dataFile)
tmpFile.flush()
tmpFile.close()
debug.print_element("pkg", "Entitlements.plist", "<==", "application mode")
dataFile = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
dataFile += "<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"
dataFile += "<plist version=\"1.0\">\n"
dataFile += " <dict>\n"
dataFile += " <key>get-task-allow</key>\n"
dataFile += " <true/>\n"
dataFile += " </dict>\n"
dataFile += "</plist>\n"
dataFile += "\n\n"
infoFile = self.get_staging_folder(pkgName) + "/Entitlements.plist"
# Create the info file
tmpFile = open(infoFile, 'w')
tmpFile.write(dataFile)
tmpFile.flush()
tmpFile.close()
# Simulateur folder :
#~/Library/Application\ Support/iPhone\ Simulator/7.0.3/Applications/
# must have a 'uuidgen' UID generate value with this elemennt ...
@ -190,6 +261,45 @@ class Target(lutinTarget.Target):
#cd $(TARGET_OUT_FINAL)/; tar -cf $(PROJECT_NAME).tar $(PROJECT_NAME).app
#cd $(TARGET_OUT_FINAL)/; tar -czf $(PROJECT_NAME).tar.gz $(PROJECT_NAME).app
if self.sumulator == False:
# Create the info file
tmpFile = open(self.get_build_folder(pkgName) + "/worddown.xcent", 'w')
tmpFile.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
tmpFile.write("<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n")
tmpFile.write("<plist version=\"1.0\">\n")
tmpFile.write(" <dict>\n")
tmpFile.write(" <key>application-identifier</key>\n")
tmpFile.write(" <string>" + pkgProperties["APPLE_APPLICATION_IOS_ID"] + "." + pkgProperties["COMPAGNY_TYPE"] + "." + pkgProperties["COMPAGNY_NAME2"] + "." + pkgName + "</string>\n")
tmpFile.write(" <key>get-task-allow</key>\n")
tmpFile.write(" <true/>\n")
tmpFile.write(" <key>keychain-access-groups</key>\n")
tmpFile.write(" <array>\n")
tmpFile.write(" <string>" + pkgProperties["APPLE_APPLICATION_IOS_ID"] + ".atriasoft.worddown</string>\n")
tmpFile.write(" </array>\n")
tmpFile.write(" </dict>\n")
tmpFile.write("</plist>\n")
tmpFile.flush()
tmpFile.close()
# application signing :
debug.print_element("pkg(signed)", "pkg", "<==", "Signing application")
iosDevelopperKeyFile = ".iosKey.txt"
if lutinTools.file_size(iosDevelopperKeyFile) < 10:
debug.error("To sign an application we need to have a signing key in the file '" + iosDevelopperKeyFile + "' \n it is represented like: 'iPhone Developer: Francis DUGENOUX (YRRQE5KGTH)'\n you can obtain it with : 'certtool y | grep \"Developer\"'")
signatureKey = lutinTools.file_read_data(iosDevelopperKeyFile)
signatureKey = re.sub('\n', '', signatureKey)
cmdLine = 'codesign --force --sign '
# to get this key ; certtool y | grep "Developer"
cmdLine += ' "' + signatureKey + '" '
cmdLine += ' --entitlements ' + self.get_build_folder(pkgName) + '/worddown.xcent'
cmdLine += ' ' + self.get_staging_folder(pkgName)
lutinMultiprocess.run_command(cmdLine)
# --force --sign "iPhone Developer: Edouard DUPIN (SDFGSDFGSDFG)"
# --resource-rules=/Users/edouarddupin/Library/Developer/Xcode/DerivedData/worddown-cmuvjchgtiteexdiacyqoexsyadg/Build/Products/Debug-iphoneos/worddown.app/ResourceRules.plist
# --entitlements /Users/edouarddupin/Library/Developer/Xcode/DerivedData/worddown-cmuvjchgtiteexdiacyqoexsyadg/Build/Intermediates/worddown.build/Debug-iphoneos/worddown.build/worddown.xcent
# /Users/edouarddupin/Library/Developer/Xcode/DerivedData/worddown-cmuvjchgtiteexdiacyqoexsyadg/Build/Products/Debug-iphoneos/worddown.app
def createRandomNumber(self, len):
out = ""
for iii in range(0,len):
@ -200,32 +310,43 @@ class Target(lutinTarget.Target):
debug.debug("------------------------------------------------------------------------")
debug.info("Install package '" + pkgName + "'")
debug.debug("------------------------------------------------------------------------")
simulatorIdFile = ".iosSimutatorId_" + pkgName + ".txt"
if lutinTools.file_size(simulatorIdFile) < 10:
#create the file:
tmpFile = open(simulatorIdFile, 'w')
tmpFile.write(self.createRandomNumber(8))
tmpFile.write("-")
tmpFile.write(self.createRandomNumber(4))
tmpFile.write("-")
tmpFile.write(self.createRandomNumber(4))
tmpFile.write("-")
tmpFile.write(self.createRandomNumber(4))
tmpFile.write("-")
tmpFile.write(self.createRandomNumber(12))
tmpFile.flush()
tmpFile.close()
simulatorId = lutinTools.file_read_data(simulatorIdFile)
home = os.path.expanduser("~")
destinationFolderBase = home + "/Library/Application\\ Support/iPhone\\ Simulator/7.0.3/Applications/" + simulatorId
destinationFolder = home + "/Library/Application Support/iPhone Simulator/7.0.3/Applications/" + simulatorId + "/" + pkgName + ".app"
destinationFolder2 = home + "/Library/Application\\ Support/iPhone\\ Simulator/7.0.3/Applications/" + simulatorId + "/" + pkgName + ".app"
debug.info("install in simulator : " + destinationFolder)
lutinTools.create_directory_of_file(destinationFolder + "/plop.txt")
cmdLine = "cp -rf " + self.get_staging_folder(pkgName) + " " + destinationFolder2
lutinMultiprocess.run_command(cmdLine)
cmdLine = "touch " + destinationFolderBase
lutinMultiprocess.run_command(cmdLine)
if self.sumulator == False:
if lutinTools.file_size("ewol/ios-deploy/ios-deploy") == 0:
debug.print_element("tool", "ios-deploy", "<==", "external sources")
cmdLine = 'cd ewol/ios-deploy ; make ; cd ../.. '
lutinMultiprocess.run_command(cmdLine)
if lutinTools.file_size("ewol/ios-deploy/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_folder(pkgName)
lutinMultiprocess.run_command(cmdLine)
else:
simulatorIdFile = ".iosSimutatorId_" + pkgName + ".txt"
if lutinTools.file_size(simulatorIdFile) < 10:
#create the file:
tmpFile = open(simulatorIdFile, 'w')
tmpFile.write(self.createRandomNumber(8))
tmpFile.write("-")
tmpFile.write(self.createRandomNumber(4))
tmpFile.write("-")
tmpFile.write(self.createRandomNumber(4))
tmpFile.write("-")
tmpFile.write(self.createRandomNumber(4))
tmpFile.write("-")
tmpFile.write(self.createRandomNumber(12))
tmpFile.flush()
tmpFile.close()
simulatorId = lutinTools.file_read_data(simulatorIdFile)
home = os.path.expanduser("~")
destinationFolderBase = home + "/Library/Application\\ Support/iPhone\\ Simulator/7.1/Applications/" + simulatorId
destinationFolder = home + "/Library/Application Support/iPhone Simulator/7.1/Applications/" + simulatorId + "/" + pkgName + ".app"
destinationFolder2 = home + "/Library/Application\\ Support/iPhone\\ Simulator/7.1/Applications/" + simulatorId + "/" + pkgName + ".app"
debug.info("install in simulator : " + destinationFolder)
lutinTools.create_directory_of_file(destinationFolder + "/plop.txt")
cmdLine = "cp -rf " + self.get_staging_folder(pkgName) + " " + destinationFolder2
lutinMultiprocess.run_command(cmdLine)
cmdLine = "touch " + destinationFolderBase
lutinMultiprocess.run_command(cmdLine)
#sudo dpkg -i $(TARGET_OUT_FINAL)/$(PROJECT_NAME) + self.suffix_package
@ -233,9 +354,12 @@ class Target(lutinTarget.Target):
debug.debug("------------------------------------------------------------------------")
debug.info("Un-Install package '" + pkgName + "'")
debug.debug("------------------------------------------------------------------------")
simulatorIdFile = ".iosSimutatorId_" + pkgName + ".txt"
if lutinTools.file_size(simulatorIdFile) < 10:
debug.warning("Can not get simulation O_ID : " + simulatorIdFile)
if self.sumulator == False:
debug.warning("not implemented")
else:
simulatorIdFile = ".iosSimutatorId_" + pkgName + ".txt"
if lutinTools.file_size(simulatorIdFile) < 10:
debug.warning("Can not get simulation O_ID : " + simulatorIdFile)
#sudo dpkg -r $(TARGET_OUT_FINAL)/$(PROJECT_NAME) + self.suffix_package
@ -243,8 +367,19 @@ class Target(lutinTarget.Target):
debug.debug("------------------------------------------------------------------------")
debug.info("log of iOs board")
debug.debug("------------------------------------------------------------------------")
cmdLine = "tail -f ~/Library/Logs/iOS\ Simulator/7.0.3/system.log"
lutinMultiprocess.run_command(cmdLine)
if self.sumulator == False:
if lutinTools.file_size("ewol/ios-deploy/ios-deploy") == 0:
debug.print_element("tool", "ios-deploy", "<==", "external sources")
cmdLine = 'cd ewol/ios-deploy ; make ; cd ../.. '
lutinMultiprocess.run_command(cmdLine)
if lutinTools.file_size("ewol/ios-deploy/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_folder(pkgName)
lutinMultiprocess.run_command(cmdLine)
else:
cmdLine = "tail -f ~/Library/Logs/iOS\ Simulator/7.1/system.log"
lutinMultiprocess.run_command(cmdLine)

View File

@ -7,7 +7,7 @@ import stat
import lutinMultiprocess
class Target(lutinTarget.Target):
def __init__(self, typeCompilator, debugMode, generatePackage):
def __init__(self, typeCompilator, debugMode, generatePackage, sumulator=False):
lutinTarget.Target.__init__(self, "Linux", typeCompilator, debugMode, generatePackage, "", "")
def generate_list_separate_coma(self, list):

View File

@ -6,7 +6,7 @@ import os
import stat
class Target(lutinTarget.Target):
def __init__(self, typeCompilator, debugMode, generatePackage):
def __init__(self, typeCompilator, debugMode, generatePackage, sumulator=False):
cross = ""
# http://biolpc22.york.ac.uk/pub/linux-mac-cross/
@ -52,7 +52,7 @@ class Target(lutinTarget.Target):
tmpFile.write(" <key>CFBundleName</key>\n")
tmpFile.write(" <string>"+pkgName+"</string>\n")
tmpFile.write(" <key>CFBundleIdentifier</key>\n")
tmpFile.write(" <string>com."+pkgProperties["COMPAGNY_NAME2"]+"."+pkgName+"</string>\n")
tmpFile.write(" <string>" + pkgProperties["COMPAGNY_TYPE"] + "." + pkgProperties["COMPAGNY_NAME2"] + "." + pkgName + "</string>\n")
tmpFile.write(" <key>CFBundleSignature</key>\n")
tmpFile.write(" <string>????</string>\n")
tmpFile.write(" <key>CFBundleIconFile</key>\n")

View File

@ -8,7 +8,7 @@ import lutinHost
import sys
class Target(lutinTarget.Target):
def __init__(self, typeCompilator, debugMode, generatePackage):
def __init__(self, typeCompilator, debugMode, generatePackage, sumulator=False):
# on windows board the basic path is not correct
# TODO : get external PATH for the minGW path
# TODO : Set the cyngwin path ...