cocos2d-js打包重簽名
問題
遊戲要出包, 由於使用cocos2d-js開發, 所以在釋出遊戲的時候js檔案要編譯成jsc的格式. 如果使用xcode進行Archive那麼需要以下步驟
- 對js檔案進行編譯
- 修改專案結構中的Resource/src(遊戲程式碼)與script(引擎程式碼), 使之指向jsc的目錄
- 打包
這種方式其實對開發很不友好, 因為在釋出之後我們又需要改一遍專案結構進行開發, 而且不能進行自動化的整合.
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檔案
相關文章
- iOS證書籤名機制&重簽名&防止重簽名iOS
- iOS 重簽名iOS
- iOS逆向 應用重簽名+微信重簽名實戰iOS
- Android 打包簽名 從生成keystore到完成簽名Android
- 蘋果軟體打包簽名原理蘋果
- 簽名打包Android版apkAndroidAPK
- Android App的簽名打包AndroidAPP
- iOS逆向——應用簽名及重簽名原理iOS
- 加固+美團walle簽名打包+Python一鍵打包Python
- Android打包簽名那點事Android
- iOSApp重簽名iOSAPP
- 使用指令碼重簽名指令碼
- iOS逆向 - 應用簽名原理及重簽名 (重籤微信應用實戰)iOS
- iOS 重簽名踩雷記一iOS
- ipa重簽名原理介紹
- iOS逆向(3)-APP重簽名iOSAPP
- WebDriverAgent重簽名爬坑記Web
- iOS HOOK 注入與重簽名iOSHook
- Android應用重簽名Android
- android 利用shell指令碼重新打包簽名Android指令碼
- Android 生成簽名apk與多渠道打包AndroidAPK
- 利用Xcode進行重簽名XCode
- Android Studio 簽名打包過程圖解Android圖解
- 教你在Android自動打包解包簽名方法Android
- 蘋果企業簽名:動態庫注入與企業證書重簽名蘋果
- IOS 逆向開發(四)App重簽名iOSAPP
- IPA簽名怎麼進行重籤
- 擼一個 iOS 重簽名指令碼iOS指令碼
- Android加固之後Apk重簽名AndroidAPK
- Gradle For Android(二) 多渠道打包與簽名配置GradleAndroid
- Gradle for Android(三)多渠道打包、配置簽名資訊GradleAndroid
- Android專案如何進行簽名打包釋出Android
- 【iOS開發】帶有ExtensionTarget的App,如何簽名打包iOSAPP
- eclipse,android studio 簽名打包,獲取MD5, SHA1(應用的簽名)EclipseAndroid
- iOS逆向 Shell指令碼+指令碼重簽名iOS指令碼
- iOS逆向——shell重簽名及程式碼注入iOS
- User模式下內建apk做重簽名.模式APK
- 蘋果企業簽名APP打包流程+iPhone12渲染圖蘋果APPiPhone