本文共 2142 字,大约阅读时间需要 7 分钟。
如何判断包是用于模拟器还是真机?
方法:查看 .app文件里有无 _Codesignature文件夹。
1、申请免费开发者账号
步骤:
(1)打开,点击Account; (2)输入Apple ID 账号密码,点击Sign in; (3)同意协议,完成。
2、添加账号到 Xcode
(1)打开Xcode,Xcode -Preference;
(2)点击Account; (3)点击右下角+号,输入账号名称及密码;完成。
3、给项目添加开发者签名
如果报如下错误:
could not launch “helloworld”,process launch failed:Security。
需要信任开发者账号:
(1)在iOS设备中,进入设置- 通用 - 描述文件
(2)选择自己的账号,点击 信任,再run。
1、打 .app文件给真机(使用Debug签名)
在项目目录下执行以下命令:
xcodebuild -project HelloWorld.xcodeproj -target HelloWorld -sdk iphoneos -configuration Debug CODE_SIGN_IDENTITY="iPhone Developer: 金花 陈 (WYM2ZZDM2X)"
//获取证书名称security find-identity -v -p codesigning//获取项目信息xcodebuild -list//获取sdk,如去掉末尾的版本号,则默认使用最新的版本xcodebuild -showsdks
打包后的文件放在当前目录的 build/Debug-iphoneos/目录中。
2、打 .app文件给模拟器(使用Debug签名)
打包后的文件放在当前目录的 build/Debug-iphonesimulator/目录中。
xcodebuild -project HelloWorld.xcodeproj -target HelloWorld -sdk iphonesimulator -configuration Debug CODE_SIGN_IDENTITY="None"
3、.app 转 .ipa文件
//-v:app文件目录,支持相对路径;//-o:导出的ipa文件目录,不支持相对路径,必须用绝对路径xcrun -sdk iphoneos PackageApplication -v build/Debug-iphoneos/HelloWorld.app -o /Users/chenjinhua/learn/IOS/HelloWorld/build/Debug-iphoneos/HelloWorld.ipa
参考文章:
一个账号可以有多个证书。有5种证书:
iOS证书申请 和 签名打包 流程图:
1、证书申请:Private Key
Private Key 通过申请开发者证书获得。
2、iOS授权和描述文件: mobile provision 文件 (Entitlement list 是Xcode项目中根据配置自动生成的)
mobile provision 又称 provision profile, 由苹果服务器生成。
mobileprovision文件包含:
(1)其捆绑了 开发者证书、AppID、授权列表、 可安装设备列表 共四大信息;
(2)带有苹果签名,只能由苹果生成,生成方式一般就是点击fix issue。 (3)可通过Xcode- preference - account - view detail 窗口看到此账号对应的所有Provision profile。
3、iOS代码签名
私钥 + mobile provision
前者本地 key chain
后者 苹果服务器生成
3.1 ipa的组成
iOS程序最终都会以.ipa文件导出,ipa文件的结构如下图:
ipa文件只是一个zip包,解压后,得到上图的Payload目录,下面是个子目录,其中的内容如下:
(1)资源文件,例如图片、html、等等。
(2)_CodeSignature/CodeResources。这是一个plist文件,可用文本查看,其中的内容就是是程序包中(不包括Frameworks)所有文件的签名。注意这里是所有文件。意味着你的程序一旦签名,就不能更改其中任何的东西,包括资源文件和可执行文件本身。iOS系统会检查这些签名。 (3)可执行文件。此文件跟资源文件一样需要签名。 (4)一个mobileprovision文件.打包的时候使用的,从MC上生成的。 (5)Frameworks。程序引用的非系统自带的Frameworks,每个Frameworks其实就是一个app,其中的结构应该和app差不多,也包含签名信息CodeResources文件
1、开发者证书的分类 及 免费开发者证书的申请
2、安装到真机上的应用都必须经过签名
3、通过命令生成应用安装文件