cocos2dx3.8 ios打包脚本编写

本文介绍了一种不依赖cocoscompile-pios命令的iOS游戏打包方法,通过自定义Shell和Python脚本来实现游戏项目的iOS应用打包流程,包括使用xcodebuild和xcrun进行编译和转换。

cocos集成了打包命令 cocos compile -p ios

在这里并没有采用这个方案,而是编写自己的脚本, 理由如下

  1. 脚本掌握在自己手中可以第一时间解决和发现bug
  2. 游戏项目总会出现各种各样定制的需求,官方不可能给出全部的解决方案

查了一下资料xcode 支持命令行

xcodebuild:   编译xcode工程生成app文件

xcrun:       将app文件转换为ipa文件

如果不清楚, 直接命令行 xcodebuild -help即可查看所有命令

为了便于管理和扩展 我们在项目根目录下新建了两个文件夹

  1. build/ios:脚本目录,
  2. publish/ios:ipa输出目录 

直接上脚本, 将XXXX换成自己的证书文件,工程路径即可

#!/bin/bash

projectPath="$1"
schemeName="$2"

dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $dir
cert="XXXXXX"
profile="XXXXXX"
sdk=iphoneos8.4


if [ ! -d "${projectPath}/bin" ]; then
    mkdir -p "${projectPath}/bin"
fi

#xcodebuild -project "${projectPath}/lddoudizhu.xcodeproj" -scheme ${schemeName} -sdk ${sdk} -configuration Release clean

xcodebuild -project "${projectPath}/lddoudizhu.xcodeproj" -scheme ${schemeName} -sdk ${sdk} -configuration Release DEPLOYMENT_POSTPROCESSING=YES CONFIGURATION_BUILD_DIR="${projectPath}/bin" CODE_SIGN_IDENTITY="${cert}" PROVISIONING_PROFILE="${profile}" build

xcrun -sdk iphoneos PackageApplication -v "${projectPath}/bin/${schemeName}.app" -o "${projectPath}/bin/${schemeName}.ipa"

  我们再编写一个python脚本调用shell并传递schemeName 

 

# coding=utf-8
# !/usr/bin/python

import os,shutil
import datetime

class BuildIos:
    def __init__(self):
        self.dir = os.path.split(os.path.realpath(__file__))[0]
        self.projectPath = self.dir + "/../../frameworks/runtime-src/proj.ios_mac"
        self.outputPath = self.dir + "/../../publish/ios"
        self.appName = "XXXXX"
        self.schemeName = "XXXXXXX"
    def build(self):
        os.system("sh build_ios.sh " + self.projectPath + " " + self.schemeName)
        
        if not os.path.isdir(self.outputPath):
            os.mkdir(self.outputPath)
        #获得当前时间
        now = datetime.datetime.now()
        outputFile = self.outputPath + "/" + self.appName + "_" + now.strftime("%Y%m%d%H%M") + ".ipa"
        shutil.copy(self.projectPath + "/bin/" + self.schemeName + ".ipa", outputFile)
        print("[Success] " + outputFile)
    def run(self):
        os.chdir(self.dir)
        self.build()
buildIos = BuildIos()
buildIos.run()

以后我们可以继续完善python,比如在不同的平台下 预先进行文件夹的整理,在执行打包脚本之前先将lua编译成字节码并加密,尽情的发挥想象吧!

 

转载于:https://www.cnblogs.com/ColaZhang/p/4827685.html

(译)cocos2d里面如何用texture picker和像素格式来优化spritesheet.pdf (译)在cocos2d里如何制作各种按钮.pdf (译)如何使用cocos2d制作基于tilemap的游戏教程 第一部分.pdf (译)如何在cocos2d里面使用动画和spritesheet.pdf (译)如何用cocos2d制作iphone游戏:旋转炮塔.pdf (译)如何用cocos2d制作iphone游戏:更猛的怪物和更多得管卡.pdf (译)如何使用cocos2d制作一个Slide Image Game:第一部分.pdf (译)如何使用cocos2d来制作一个塔防游戏:第一部分.pdf cocos2d 2.0 添加遮罩.pdf iOS Code Signing解惑.pdf iPhone上面的现实增强(Augmented Reality)入门教程.pdf OpenGL ES2.0 – Iphone开发指引.pdf OpenGLES2.0 Iphone开发指引:第二部分,纹理贴图.pdf 使用cocos2d和box2d制作滚动背景.pdf 加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分.pdf 在cocos2d里面如何使用物理引擎box2d:弹球.pdf 在cocos2d里面如何拖拽精灵.pdf 如何使用box2d来做碰撞检测(且仅用来做碰撞检测).pdf 如何使用CCRenderTexture来创建动态纹理.pdf 如何使用cocos2d1.0来给sprite添加Mask(遮罩).pdf 如何使用cocos2d制作一个塔防游戏:引子.pdf 如何使用cocos2d制作一个太空射击游戏.pdf 如何使用cocos2d制作一个打地鼠的游戏:(第二部分。完).pdf 如何使用cocos2d和box2d来制作一个Breakout游戏:第一部分.pdf 如何使用cocos2d和box2d来制作一个Breakout游戏:第二部分(完).pdf 如何使用cocos2d来制作一个打地鼠的游戏:第一部分.pdf 如何使用GameCenter制作一个简单的多人游戏教程:第一部分.pdf 如何使用GameCenter制作一个简单的多人游戏教程:第二部分.pdf 如何使用NSCoding和NSFileManager来保存你的应用程序数据.pdf 如何制作一个类似tiny wings的游戏:第一部分.pdf 如何制作一个类似tiny wings的游戏:第二部分(完).pdf 如何升级你的cocos2d版本.pdf 如何学好Iphone开发.pdf 如何查找资料.pdf 碰撞检测和收集物品:如何使用cocos2d制作基于tiled地图的游戏:第二部分.pdf (译)cocos2d精灵教程:第一部分.pdf (译)cocos2d精灵教程:第三部分.pdf (译)cocos2d精灵教程:第二部分.pdf (译)cocos2d菜单教程:第一部分.pdf (译)cocos2d菜单教程:第三部分(完).pdf (译)cocos2d菜单教程:第二部分.pdf (译)使用cocos2d和box2d来制作一个platformer游戏.pdf (译)如何使用cocos2d制作一个塔防游戏:第三部分.pdf (译)如何使用cocos2d制作一个塔防游戏:第二部分.pdf (译)如何使用cocos2d制作一个塔防游戏:第四部分(完).pdf (译)如何使用cocos2d制作一个滑动图片游戏教程:第二部分(完).pdf (译)如何用cocos2d制作一款简单的iphone游戏(第一部分).pdf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值