IPhone打包工具脚本

(后面就是代码了,我就不翻译了。)

#!/usr/bin/perl
   use File::Copy; 

   my $installPath = $ARGV[0]; 

   #the name that displays on the iPhone
   my $bundleDisplayName = "New App";
   # prerendered icons don‘t have the glossy effect applied over them.
   my $prerenderedIcon = 1;
   # determines orientation of OS popups (text messages, volume controls)
   my $landscapeOrientation = 0; 

   # these three are values defined in AppController.m
   my $fpsRate = "60.0";
   my $accelerometerRate = "60.0";
   my $profilerOn = "0"; 

   #go through the info.plist file line by line until you find this one:
   my $findLine = "CFBundleDisplayName";
   my $endOfPlist = "</dict>"; 

   #copy Default.png and Icon.png from Asset to installPath
   my $iconFilename = "Icon.png";
   my $defaultFilename = "Default.png"; 

   # The type of player built:
   # "dashboard", "standaloneWin32", "standaloneOSXIntel", "standaloneOSXPPC", "standaloneOSXUniversal", "webplayer", "iPhone"
   my $target = $ARGV[1]; 

   print ("\n*** PostprocessBuildPlayer - Building at ‘$installPath‘ with target: $target ***\n"); 

   my $dst = $installPath . "/" . $iconFilename;
   print ("Copying Icon.png [$iconFilename -> $dst]\n");
   copy($iconFilename, $dst) or die "Icon file can not be copied "; 

   my $dst = $installPath . "/" . $defaultFilename;
   print ("Copying Default.png [$defaultFilename -> $dst]\n");
   copy($defaultFilename, $dst) or die "Default file can not be copied "; 

   ################################################################
   # This modifies info.plist so you don‘t have to                #
   # set BundleDisplayName manually                               #
   ################################################################ 

   #open this file 

   $oplistPath = $installPath."/Info.plist";
   $nplistPath = $installPath."/Info.plist.tmp"; 

   open OLDPLIST, "<", $oplistPath or die("Cannot open Info.plist");
   open NEWPLIST, ">", $nplistPath or die("Cannot create new Info.plist"); 

   my $nextLine = 0;   
      
   while(<OLDPLIST>)
   {    
      if ($nextLine == 1)
      {
         $_ =~ s/\${PRODUCT_NAME}/$bundleDisplayName/; #swap the product name for display name
      
         $nextLine = 0;
      } 

      if ($_ =~ m/$findLine/)
      {
         $nextLine = 1;
      }
      
      ################################################################
      # Add any key/value pairs you want at the end of Info.plist    #
      ################################################################ 

      if ($_ =~ m/$endOfPlist/)
      {
         my $keys = "";
         
         if ($prerenderedIcon)
         {
            $keys .= "   <key>UIPrerenderedIcon</key>\n";
            $keys .= "   <true/>\n";
         }
         
         if ($landscapeOrientation)
         {
            $keys .= "   <key>UIInterfaceOrientation</key>\n";
            $keys .= "   <string>UIInterfaceOrientationLandscapeRight</string>\n";      
         }
         
         $_ = $keys . $_;
      }
      
      print NEWPLIST $_;
   } 

   close OLDPLIST;
   close NEWPLIST; 

   `mv \‘$nplistPath\‘ \‘$oplistPath\‘`; 

   ################################################################
   # Change default Profiler & kFPS rates                         #
   ################################################################ 

   $oacmPath = $installPath."/Classes/AppController.mm";
   $nacmPath = $installPath."/Classes/AppController.mm.tmp"; 

   open OLDACM, "<", $oacmPath or die("Cannot open AppController.mm");
   open NEWACM, ">", $nacmPath or die("Cannot create new AppController.mm"); 

   while(<OLDACM>)
   {
      if ($_ =~ m/ENABLE_INTERNAL_PROFILER/)
      {
         $_ =~ s/0/$profilerOn/;
      }
      if ($_ =~ m/kFPS/)
      {
         $_ =~ s/60.0/$fpsRate/;
      }
      if ($_ =~ m/kAccelerometerFrequency/)
      {
         $_ =~ s/60.0/$accelerometerRate/;
      }
      print NEWACM $_;
   } 

   close OLDACM;
   close NEWACM; 

   `mv \‘$nacmPath\‘ \‘$oacmPath\‘`;
时间: 2024-10-25 01:45:46

IPhone打包工具脚本的相关文章

批处理脚本结合Maven制作的自动打包工具

这里只是针对我现在的工程结构编写的 @echo off title 自动打包工具[玄玉制作] color 02 set project=%~n0 set curdir=%~dp0 set partition=%curdir:~0,1% cd %curdir:~0,20% REM 此文件需保存为ANSI编码,方可在Windows下执行 REM rem------------表示行注释,相当于Java中的// REM @echo off------表示关闭回显,即不显示本行即下面的命令行(默认DOS

细说前端自动化打包工具--webpack

背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.做网页就和用world编辑一个文档一样,只不过那个工具叫Dreamweaver.一个html页面,夹杂着css,javascript是再常见不过的事了. 随着前端的不断发展,特别是单页应用的兴起,这种所见即所得的IDE工具,就渐渐地退出了前端的主流.一个应用,通常只有一个静态页面(index.html),甚至这个页面的body只有一个或少数几个div组成.这时有

Inno Setup 打包工具总结

Inno Setup 打包工具总结 分类: Install Setup 2013-02-02 15:44 2386人阅读 评论(0) 收藏 举报 最近打包用到了Inno setup,在这个过程中容易犯一些低级错误,特别写出来已提醒自己 1.打包文件夹 Source: "D:MyProject/XX/*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs 它解压时直接把XX目

[转]Python打包工具

作者:Tarek Ziadé,翻译:张吉 原文:http://www.aosabook.org/en/packaging.html 转载地址:http://www.ituring.com.cn/article/19090 14.1 简介 对于如何安装软件,目前有两种思想流派.第一种是说软件应该自给自足,不依赖于其它任何部件,这点在Windows和Mac OS X系统中很流行.这种方式简化了软件的管理:每个软件都有自己独立的“领域”,安装和卸载它们不会对操作系统产生影响.如果软件依赖一项不常见的类

Unity自动打包工具

最开始有写打包工具的想法,是因为看到<啪啪三国>王伟峰分享的一张图,他们有一个专门的"工具程序员"开发各种工具.(ps:说起来这个王伟峰和他的创始团队成员,以前跟我是同一个公司的,公司名字就不透露了,只是当时在不同的部门,相互不认识).正好我们项目也到了后期,该准备接入渠道了.于是,我就着手写我们的打包工具.约定一下,下文中,平台是指操作系统平台,比如iOS.Android.WP8.Metro:渠道是指发布渠道,比如App Store.WP8商店.360.91.小米等. 上

可扩展的android重打包工具

今天看了一下当初的打包工具.学习了点技术.然后git上找了个相似的工程代码研究了一下.觉得制作一个脚本语言的工具会快很多.而程序员很多时候是不需要一个接着一个打包的.对于程序员来说只需要使用几句代码就能描述自己做的一些事情.因此应该讲这些重复劳动的东西写出来. 简单学习了一下打包工具的原理.是使用一个apkTool的工具来对apk进行解压缩和重签名的.在github上许多是使用ant的打包工具打包.而我看到了一个demo是使用此工具解压缩文件并重签名的.作者将一些东西写出了配置文件.不过网上许多

自动打包工具--xctool

前面介绍了HomeBrew的安装 现在通过命令:sudo brew install xctool完成xctool的安装 xctool是FaceBook开源的一个命令行工具,用来替代苹果的xcodebuild工具. 参数: -workspace 需要打包的workspace 后面接的文件一定要是.xcworkspace 结尾的 -scheme 需要打包的Scheme -configuration 需要打包的配置文件,我们一般在项目中添加多个配置,适合不同的环境 命令: clean 清除编译产生的问

Python打包工具setuptools的使用

将我们写的Python程序发布成包后,可以使其能够安装使用. 在项目上测试的时候,某些情况下,可以将Python打包,然后上传到测试服务器,安装测试. setuptools是常用的打包工具. 一个简单的setup.py文件如下: from setuptools import setup, find_packages setup( name = "my_demo", version = "0.1", packages = find_packages() ) 其中,na

FPM打包工具制作线上nginx的RPM包

一.安装FPM打包工具 1.FPM是ruby的模块,先安装FPM依赖的包 [[email protected] ~]#  yum -y install ruby rubygems ruby-devel rpm-build 2.因国内网络环境,访问http://rubygems.org/站点时不稳定,所以增加国内toabao提供的一个镜像站点,把原来的站点移除 [[email protected] ~]#  gem sources -a https://ruby.taobao.org/ [[ema