//发布 app和资源包 private static void PublishPackage(bool mPackageBuildSuccess) { //上传资源包 if (mPackageBuildSuccess && GBuilderConfigure.Configure.PublishRes) { ///scp 命令 -r 递归复制整个目录。 src 可以使一个目录 一个文件 会是 /src/* 目录下全部 dst 对应src 拷贝目录时没有目录路径会创建重命名为目标路径 有目标路径文件夹时拷贝到目标目录下 文件名不变 目标路径是多级不存在的路径会失败 拷贝文件时不会自动创建目录 //安装包 CmdHelper.ExcuteProcess("scp", string.Format("-r {0} {1}", LocalBuildAppPath(), VersionAppPublishPath())); //资源包 CmdHelper.ExcuteProcess("scp", string.Format("-r {0} {1}", LocalBundleVersionBundleDataPath(), VersionResPublishPath())); //版本文件 CmdHelper.ExcuteProcess("scp", string.Format("-r {0} {1}", LocalBundleVersionFilePath(), VersionResPublishPath())); //签名文件 CmdHelper.ExcuteProcess("scp", string.Format("-r {0} {1}", LocalBundleCodeSignFilePath(), VersionResPublishPath())); //对比结果 // CmdHelper.ExcuteProcess("scp", string.Format("-r {0} {1}", mComparePath, resPublishPath)); } }
//导出xcode项目 编译生成ipa private static void CompileXCode(ref bool mPlayerBuildSuccess) { BuildTarget mBuildTarget = GBuilderConfigure.Configure.AppBuildTarget; if (mPlayerBuildSuccess && mBuildTarget == BuildTarget.iOS) { if (mBuildTarget == BuildTarget.iOS) { //不带后缀的应用名 string appName = GBuilderConfigure.Configure.AppName; string buildPath = GBuilderConfigure.Configure.BuildPath; BuildOptions opts = GBuilderConfigure.Configure.Options; //调试模式 bool mBuildDebug = (opts & BuildOptions.Development) == BuildOptions.Development; //生成archive文件 string archiveParams = string.Format("archive -project {1}/ExportXcodeProject/Unity-iPhone.xcodeproj -scheme Unity-iPhone -configuration {0} -archivePath {1}/Unity-iPhone.xcarchive -quiet -UseModernBuildSystem=NO", mBuildDebug ? "Debug" : "Release", buildPath); bool archiveRet = CmdHelper.ExcuteProcess("xcodebuild", archiveParams); if (!archiveRet) { Debug.LogError("xcodebuild archive Failed!"); return; } //导出符号表 bool dSYMRet = CmdHelper.ExcuteProcess("cp", string.Format("-rf {0}/Unity-iPhone.xcarchive/dSYMs/projectf.app.dSYM {0}", buildPath)); if (!dSYMRet) { Debug.LogError("cp dSYMRet Failed!"); return; } //生成ipa文件 string ipaParams = string.Format("-exportArchive -archivePath {0}/Unity-iPhone.xcarchive -exportPath {0} -exportOptionsPlist {0}/../SDK/iOS/export_options.plist -quiet -UseModernBuildSystem=NO", buildPath); bool ipaRet = CmdHelper.ExcuteProcess("xcodebuild", ipaParams); if (!ipaRet) { Debug.LogError("xcodebuild exportArchive Failed!"); return; } string oldname = PathHelper.Combine(buildPath, "Unity-iPhone.ipa"); string newname = PathHelper.Combine(buildPath, appName, PathHelper.GetAppPlatformExt(mBuildTarget)); FileHelper.Rename(oldname, newname); } } }