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...
  • yfloctar
  • yfloctar
  • 2017年01月05日 18:07
  • 2462

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

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

iOS使用脚本批量打渠道包

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

Xcode多渠道自动化打包

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

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

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

Android Studio 多渠道打包并签名

每当项目上线时,最苦恼的,最耗时的,莫过于打包... 在此,为大家分享一下多渠道打包的方法。 多渠道打包 一、添加签名配置 第一:添加签名信息 第二:签名配置 上方的为打包时配置,下方设...
  • Jason_2016
  • Jason_2016
  • 2016年06月03日 09:46
  • 956

苹果发布ipa包的几种方式讲解

苹果的软件发布方式: 1、Appstore方式 App store即application store,通常理解为应用程序商店。是苹果公司基于IOS的软件应用商店,向iPhone/iPad用户提供...
  • whl_cxy
  • whl_cxy
  • 2015年06月30日 16:13
  • 1414

IOS自动化的打渠道包

自动化打包背景介绍 原文:http://stblog.baidu-tech.com/?p=1295 1、背景 随着ios程序发布的渠道逐渐的增多,为每个渠道打包也成为特别耗费时间和体力的一项技术...
  • yangxt
  • yangxt
  • 2012年11月16日 17:01
  • 3091

iOS 多渠道打包的解决方案

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

安卓多渠道打包的意义理解

安卓多渠道打包的: 顾明思义:就是说标记我这个应用是来自于哪一个渠道,譬如百度市场,腾讯市场,譬如 我有很多个门店,A门店。B门店,C门店 我给三家门店不同的渠道包,三家门店分别推广自己的APK...
  • rnZuoZuo
  • rnZuoZuo
  • 2015年09月25日 09:34
  • 993
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 多渠道打包的解决方案
举报原因:
原因补充:

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