理解打包流程

首先理解一下基本的概念

https://help.apple.com/developer-account

一些常用的名词

App ID:Product ID,用于标识一个或一组App。App ID应该和Xcode的Bundle Identifier是一致(Explicit)或匹配(Wildcard)。

Certificates

证书用来证明iOS App内容的合法性和完整性。iOS证书分为:

  • Development:用于开发和调试应用程序。
  • Production(Distribution):用于分发应用程序。

iOS或Mac系统自动安装AppleWWDRCA.cer这个根证书.

Identifiers

Devices

Profiles

供应配置文件,其包含的内容:证书、App ID和设备。

Profile也分为Development和Distribution两类,有效期同Certificate一样。Distribution版本的ProvisioningProfile主要用于提交App。

Profile文件的构成大致如下:

  • Name:该mobileprovision的文件名。
  • UUID:该mobileprovision文件的真实文件名。
  • TeamName:Apple ID账号名。
  • TeamIdentifier:Team Identity。
  • AppIDName:explicit/wildcard App ID name(ApplicationIdentifierPrefix)。
  • ApplicationIdentifierPrefix:完整App ID的前缀(TeamIdentifier.*)。
  • DeveloperCertificates:包含了可以为使用该配置文件应用签名的所有证书。

    Keys

证书配置流程

  1. 官网新增应用、证书;
  2. 下载证书文件(.p12)、配置文件(.mobileprovision);
  3. Mac安装相应证书,Xcode关联配置文件、填写对应bundle ID;

编译脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
MWProjectName="Loneqd"
#scheme名字
MWScheme="Loneqd_appstore"
#Release还是Debug
MWConfiguration="Release"
#日期
MWDate=`date +%Y%m%d_%H%M`
#工程路径
MWWorkspace="${WORKSPACE}/src"
#build路径
MWBuildDir="/Users/loneqd/alone/Loneqd-for-iOS/build"
#导出ipa的配置文件
MBPlistName="/Users/loneqd/alone/Loneqd-for-iOS/lieyou_appstore.plist"


xcodebuild archive -workspace "${WORKSPACE}/src/$MWProjectName.xcworkspace" -scheme "$MWScheme" -configuration "$MWConfiguration" -archivePath "$MWBuildDir/$MWProjectName$MWDate" -quiet

xcodebuild -exportArchive -archivePath "$MWBuildDir/$MWProjectName$MWDate.xcarchive" -exportPath "$MWBuildDir/$MWProjectName$MWDate" -exportOptionsPlist "$MBPlistName" -quiet

echo "结束了======"