美文网首页程序员
cocos2d-js打包重签名

cocos2d-js打包重签名

作者: samael | 来源:发表于2017-02-06 11:31 被阅读257次

原文地址

问题

游戏要出包, 由于使用cocos2d-js开发, 所以在发布游戏的时候js文件要编译成jsc的格式. 如果使用xcode进行Archive那么需要以下步骤

  1. 对js文件进行编译
  2. 修改项目结构中的Resource/src(游戏代码)与script(引擎代码), 使之指向jsc的目录
  3. 打包

这种方式其实对开发很不友好, 因为在发布之后我们又需要改一遍项目结构进行开发, 而且不能进行自动化的集成.

cocos compile其实可以对js文件进行编译并输出ipa, 之后输出的ipa包使用iOS App Signer 重签名. 虽然签名成功了, 但是在安装到真机上时会报出CPU类型不符这样的错误

原因

查看引擎目录下的

/tools/cocos2d-console/plugins/plugin_compile/project_compile.py

   def build_ios(self):
        if not self._platforms.is_ios_active():
            return

        if not cocos.os_is_mac():
            raise cocos.CCPluginError(MultiLanguage.get_string('COMPILE_ERROR_BUILD_ON_MAC'),
                                      cocos.CCPluginError.ERROR_WRONG_ARGS)
        # 这里
        if self._sign_id is not None:     
            cocos.Logging.info(MultiLanguage.get_string('COMPILE_INFO_IOS_SIGN_FMT', self._sign_id))
            self.use_sdk = 'iphoneos'
        else:
            self.use_sdk = 'iphonesimulator'

    ... 以下省略 ...
     try:
            cocos.Logging.info(MultiLanguage.get_string('COMPILE_INFO_BUILDING'))

            command = ' '.join([
                "xcodebuild",
                "-project",
                "\"%s\"" % projectPath,
                "-configuration",
                "%s" % 'Debug' if self._mode == 'debug' else 'Release',
                "-target",
                "\"%s\"" % targetName,
                # 这里
                "%s" % "-arch i386" if self.use_sdk == 'iphonesimulator' else '', 
                "-sdk",
                "%s" % self.use_sdk,
                "CONFIGURATION_BUILD_DIR=\"%s\"" % (output_dir),
                # 这里
                "%s" % "VALID_ARCHS=\"i386\"" if self.use_sdk == 'iphonesimulator' else ''
                ])
    ... 以下省略 ...

这里可以发现, 如果在cocos compile中不使用SIGN_ID时, 生成的其实是让模拟器使用的i386的包

解决

真正的命令是:

cocos compile -p ios -t TARGET -m release –sign-identity SIGN_ID

之后在会在游戏项目publish下生成ipa文件

相关文章

  • cocos2d-js打包重签名

    原文地址 问题 游戏要出包, 由于使用cocos2d-js开发, 所以在发布游戏的时候js文件要编译成jsc的格式...

  • App 多渠道打包及重签名方案

    App 多渠道打包及重签名方案App 多渠道打包及重签名方案

  • iOS重签名

    重组 IPA (打包再签名) - 窥打包签名流程 iOS数字签名及ipa重签名 ipa重签名的四种方式 ios 企...

  • iOS ipa重签名

    关于ipa包重新签名 有时候打包没有更改plist文件,需要重新打包。重新打包时间比较久,可以进行ipa重签名,不...

  • ipa重签名最直接的教程

    ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 ap...

  • iOS数字签名及ipa重签名

    ipa重签名是指对已经打包好的ipa,利用新的证书重新签名。 ipa重签名作用: 作用一:有时候公司在进行软件开发...

  • ionic3 android打包

    1 打包 2 生成签名 3 用签名打包

  • 【Unity】IOS打包重签名

    前言 前段时间,公司准备把项目不上架应用商店,走企业签名。之前是用的个人账号打包的,因为同一个bundle id使...

  • iOS ipa重签名,打包

    重签名:可以让用个人开发者账号打出来的包,不用上架Appstore即可将其安装到所有未越狱的iOS设备上(前提条件...

  • 脚本模式重签名打包 ipa

    脚本重签名,命令使用的是 xcode 自身打包 下载脚本iOS_resign_scripts 把脚本文件和我们要重...

网友评论

    本文标题:cocos2d-js打包重签名

    本文链接:https://www.haomeiwen.com/subject/giiyittx.html