Ad Hoc, 即测试分发打包,本来也不难,但是我的是Xcode7编写的工程,现在要使用Xcode8打包,并且苹果刚刚更新了IOS 10系统.打包的问题随之而来。。。
详细打包步骤,本文不提供,我只说我遇到的问题和需要注意的细节。
1.Bundle identifier。
确保工程TARGETS-info下的Bundle identifier有预设值,并与苹果开发中心的Bundle identifier一致。当然General中的Bundle identifier也要有值,与开发中心一致。
2.在 Xcode 中点击project
图标,在info
这个tab下找到configuration
设置,里面默认的是debug和release。点击+,选择Duplicate the “Release configuration”
,给生成的新东西起个名字,推荐使用ad hoc distribution
如下:
3.点击
targets
图标,在build settings
这个tab下,找到signing
部分(注意Xcode 8下是sign,不是code sign 了!!!!!)。将Code Signing Identity
中的ad hoc distribution
证书设置为刚刚导入到 Xcode 中对应测试应用的证书。注意不要改动Debug和Release中的证书。
注意:保险起见,TARGETS和PROJECTS的选项都选择一次吧,并且现在Signing选项下有个Development Team选项,你要选择为你开发账号的 Team,不要选择为你真机测试的Team了!
4.选择Xcode工程的Product选项,选择Scheme,然后再选择Edit Scheme.在弹出的菜单中选择Archive,然后在右侧的Build Configuration中选择(ad Hoc distribution,这个就是开始我们添加的那个ad Hoc distribution,开始添加了过后才会有的)。
如下图:
5.好,接下来就可以打包你的程序了
<1>遇到的第一个问题是:用CocoaPods引入AFNetworking报错:library not found for -lAFNetworking,即未找到AFNetworking的库文件,不仅如此,使用CocoPods 导入的所有三方类库,我们的Library都找不到。我的处理办法是,使用CoCoPODS重新更新了所有三方类库。然后clean工程。
再然后:1.检查在Build phases
-> link binary with libraries
中是否导入了由cocoapods 生成的libAFNetworking. a
,没有的话就导入
如下图:
2.Project
->Build Setting ->Build Active Architecture Only
改成 YES
3.最后再次Clean工程,问题就解决了。
2.遇到的第二个问题是:ld: warning: directory not found for option“XXXXXX”,开始是 Libray找不到,现在又是Directory找不到。。。。。
去掉警告的办法如下:
1选择工程, 编译的 (targets)
2选择 Build Settings 菜单
3查找 Library Search Paths 和 Framework Search Paths, 删掉编译报warning的路径即OK.(这两个东西一定有的,在Build Settings下,使用右侧的搜索框,然后删掉)。然后问题解决。
如图:
将Pods上面的路径和Debug-iphones都删除掉,就可以了。
3.遇到的第3个问题。如图:
Bitcode!!说的是bitcode是被编译程序的一种中间形式的代码。包含bitcode配置的程序将会在App store上被编译和链接。bitcode允许苹果在后期重新优化程序的二进制文件.问题还是出在百度地图SDK.我们也可以自己解决,我们要做的就是关闭bitcode.
这个是在TARGETS里面设置。
如果我们开启了bitcode,在提交包时,下面这个界面也会有个bitcode选项。问题解决!
4.现在在打包的时候,最后有两个选项,对于IOS端的话,要选择最后打包是只有一个ipa文件的那个打包方式
。