iOS 多渠道打包的解决方案

原创 2015年07月10日 20:18:43

环境:xcode 6.3.2
开始的思路是用脚本 解压.ipa文件 ,修改.app里面的自定义渠道文件,然后再压缩成ipa文件。
后来发现打出来的手机装不上。
于是主意打在了.xcarchive 文件上。

脚本如下

#!/bin/sh
#在工程的info.plist 相同路径下 创建Channel.dat文件作为 渠道号读取的文件
#创建这个脚本文件archive.sh(记得加可执行权限)和渠道文件Channels.dat
#用xcode打包后
#请将xcode archive 后的 XXXX.xcarchive文件 与 archive.sh 和 Channels.dat 文件放在相同路径下

shpath="/Users/Admin/Tiger/iOS/渠道打包"  #脚本路径
xcarchivename="XXX.xcarchive"            #xcarchive 文件名
xcarchivesub="Products/Applications"
appname="XXX.app"                          #程序target名称
distDir="./Archives"   #打包后文件存储目录
profile="LSZAdhocDistribution" #profile 文件
version="1.5"

rm -rdf "$distDir"
mkdir "$distDir"
for line in $(cat channels.dat)   #读取渠道号文件并进行循环
do
ipafilename=`echo $line|cut -f1 -d':'`
sourceid=`echo $line|cut -f2 -d':'`
#echo "ipafilename=$ipaname"
#echo "sourceid=$sourceid"
targetName="Tripsters"
#echo "sourceid=$sourceid"
#echo "ipafilename=$ipafilename"
cd $shpath
cd $xcarchivename
cd $xcarchivesub
cd $appname
#echo "replace Channel.dat before: "
#cat Channel.dat

echo "$sourceid" > Channel.dat
#echo "replace Channel.dat after: "
#cat Channel.dat
cd $shpath

archivePath=$shpath/$xcarchivename
ipaPath="$distDir/${targetName}_${version}_${sourceid}.ipa"

echo "Creating ipa..."

xcodebuild -exportArchive -archivePath $archivePath -exportPath $ipaPath -exportFormat ipa -exportProvisioningProfile "$profile"

done

Channels.dat 文件内容

91助手:91_Store
同步推:TongBuTui_Store
PP助手:PP_Store
苹果园:PingGuoYuan_Store
威锋源:WeiFeng_Store
搜狐应用市场:Sohu_Store

Channel.dat 文件内容

91_Store

Channel.dat 文件读取

 var channelid = "App Store"
 var filePath = NSBundle.mainBundle().pathForResource("Channel", ofType: "dat")
 if String.isNotEmptyString(filePath) {
     var channelString = String(contentsOfFile: filePath!, encoding: NSUTF8StringEncoding, error: nil)
     if String.isNotEmptyString(channelString) {
         channelid = channelString!
     }
  }

参考连接:http://www.cnblogs.com/chen1987lei/archive/2012/05/28/2521626.html

相关文章推荐

IOS 多渠道包打包方法 基于XCode8.1 AdHoc版本

由于客户端需要针对不同的后台环境,提供不同的ipa安装包,(供内测、演示和上线使用);现整理如下一套完整的打多个版本ad hoc的ipa包流程。 1、首先,给不同的渠道包确定对应的Bundl...

iOS使用脚本批量打渠道包

最近我们接到了新的需求,需要打出类似xx001-xx100共100个这样的ipa渠道包,不需要签名。(这批ipa包后续会用企业证书签名,不会影响AppStore的) 这些包所有的功能、内容都是一样的...

Xcode多渠道自动化打包

某一天,被告知客户要使用企业账号,要打包100多个iOS客户端的渠道包。刚听到这个消息时候,我是崩溃的。然后还是得打,不是么?如果手动打然后一个一个导出来,第一反应就是这TM手都得断吧。跟同事商议一下...

IOS批量打包工具

1,解决问题:公司业务需求,因为合作的App市场比较多,推广IOS App时需要针对不同的市场提供不容的包(.ipa),用渠道号来区别,为了提高效率和减少手工一个个修改渠道打包引入的bug,所以考虑引...
  • GUITK
  • GUITK
  • 2015年01月09日 16:15
  • 4479

教你快速高效接入SDK——iOS多渠道自动打包工具核心原理

在说Android打包工具原理的时候,我们说到了U8SDK整套框架的核心设计思想。针对N款游戏,我们让渠道SDK的接入成本始终控制在1,而不是N。这就是U8SDK Android版本和iOS版本的核心...

Android打包系列——多渠道打包及签名

Android打包系列——多渠道打包及签名 2016-08-06 | COMMENTS 0x00 概述 上篇文章梳理了下打包流程,本文从实践的角度教你怎么打包? 0x01 ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

iOS渠道追踪和来源统计的几种原理

在开始之前,我们先来看看安卓的渠道统计。Google官方的应用商店Google Play在国内一直是无法使用的状态,所以国内的安卓App分发,都是依托数十个不同的应用市场或发行渠道,如百度、360、腾...

【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(2-1)Servlet的使用

服务器接收来自不同用户的不同的请求(当然是以该服务器作为请求目标的那些请求),分析不同的请求,控制模块将各自的请求分送至对应的 Servlet (如登陆请求,则将登陆数据送至LoginServlet)...

python模拟登录新浪微博自动获得调用新浪api所需的code

用这篇文章来记录一下从头到尾调用新浪api的过程 一、安装api 第一步肯定是要先安装新浪微博的库,安装了pip的同学直接在cmd中执行pip install weibo 便可安装成功 二、获得...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 多渠道打包的解决方案
举报原因:
原因补充:

(最多只允许输入30个字)