Ad Hoc, 即测试分发打包,本来也不难,但是我的是Xcode7编写的工程,现在要使用Xcode8打包,并且苹果刚刚更新了IOS 10系统.打包的问题随之而来。。。

      详细打包步骤,本文不提供,我只说我遇到的问题和需要注意的细节。

      1.Bundle identifier。

      确保工程TARGETS-info下的Bundle identifier有预设值,并与苹果开发中心的Bundle identifier一致。当然General中的Bundle identifier也要有值,与开发中心一致。

在 Xcode 中点击project图标,在info这个tab下找到configuration设置,里面默认的是debug和release。点击+,选择Duplicate the “Release configuration”,给生成的新东西起个名字,推荐使用ad hoc distribution

如下:

adt打包 android adhoc打包_Scheme


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,开始添加了过后才会有的)。

如下图:

adt打包 android adhoc打包_Scheme_02


5.好,接下来就可以打包你的程序了


<1>遇到的第一个问题是:用CocoaPods引入AFNetworking报错:library not found for -lAFNetworking,即未找到AFNetworking的库文件,不仅如此,使用CocoPods 导入的所有三方类库,我们的Library都找不到。我的处理办法是,使用CoCoPODS重新更新了所有三方类库。然后clean工程。
再然后:1.检查在Build phases -> link binary with libraries 中是否导入了由cocoapods 生成的libAFNetworking. a,没有的话就导入

如下图:

adt打包 android adhoc打包_ide_03


2.Project->Build Setting ->Build Active Architecture Only 改成 YES3.最后再次Clean工程,问题就解决了。


2.遇到的第二个问题是:ld: warning: directory not found for option“XXXXXX”,开始是 Libray找不到,现在又是Directory找不到。。。。。


去掉警告的办法如下:

1选择工程, 编译的 (targets)

2选择 Build Settings 菜单

Build Settings下,使用右侧的搜索框,然后删掉)。然后问题解决。

如图:


adt打包 android adhoc打包_三方类库_04

将Pods上面的路径和Debug-iphones都删除掉,就可以了。

3.遇到的第3个问题。如图:


adt打包 android adhoc打包_Scheme_05

说的是bitcode是被编译程序的一种中间形式的代码。包含bitcode配置的程序将会在App store上被编译和链接。bitcode允许苹果在后期重新优化程序的二进制文件.问题还是出在百度地图SDK.我们也可以自己解决,我们要做的就是关闭bitcode.

adt打包 android adhoc打包_ide_06

   这个是在TARGETS里面设置。

如果我们开启了bitcode,在提交包时,下面这个界面也会有个bitcode选项。问题解决!


4.现在在打包的时候,最后有两个选项,对于IOS端的话,要选择最后打包是只有一个ipa文件的那个打包方式