ios端 离线打包 +xcode11导出ipa文件 各种问题解决

时间:2024-04-05 07:44:41

本人面向ios小白,大佬勿看轻喷。

IOS离线打包部分

 

离线打包分为三部分:

  1. 下载离线打包资源
  2. 配置离线打包工程(证书、文件、图标、app名字等)
  3. 配置模块(例如Geolocationpush模块等)

 

mac端操作:command键相当于windows的ctrl键,在虚拟机虚拟机内按win键,例如复制粘贴操作就是win+c、win+v。

 

离线打包资源

在Dcloud网站上可以下载到最新的资源

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

https://nativesupport.dcloud.net.cn/AppDocs/download/ios

开发环境

我这里用的是mac os x 10.15 、xcode 11.4

配置离线打包工程

Dcloud官网有写配置过程,但写的不是很清楚(导致我跌了非常多的坑),他们的教程在这。

https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/41?tdsourcetag=s_pctim_aiomsg

 

在mac系统解压开ios端 离线打包 +xcode11导出ipa文件 各种问题解决文件(在win系统解压会额外得到一个_MACOSX文件夹,那个无用可以直接删除)。

 

打开解压后得到的文件夹:

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

做标记的可以删除。

Feature-ios.xls:后期配置模块的excel表格。

Hbuilder-hello:工程文件主体。

Hbuilder-integrate:原生开发文件,暂时无用,后期第三方sdk开发用使用。

Resources:放资源文件的文件夹,这几个文件夹的资源都共用这一个文件夹,导致该文件夹非常大,无用资源很多,但必须保留。

 

打开xcode,欢迎界面如下:

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

若未弹出欢迎界面,则点击

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

点击

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

打开如图所示工程,也可以双击后缀名为xcodeproj的文件直接打开该工程。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

 

 

首先先修改工程名,依次点击如图所示区域,修改工程名,修改完成后按enter确认修改。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

Xcode会自动找到关联文件,一起修改名字,点击rename。这里我把工程名字改成了example。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

点击produc,可以看到目前的应用名称,也将其修改成自己想要的,选中TARGETS,按下tab键修改。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

应用的名字变成红色没关系,过一会就会边回白色。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

在外部打开该工程的文件夹,找到Pandora文件夹打开,打开apps文件夹,删除该文件夹里的所有文件。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

把自己的h5工程复制进去,重命名工程为www。

打开h5工程中的manifest.json文件,将”id”所对应的值复制,在www的同级目录创建一个文件夹,文件夹名改为改值,将www放进去

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

最后正确的顺序因为pandora-apps-id对应的值-www-h5工程里的所有文件。

回到xcode,点击TARGET,再点击General,如图所示

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

Display name 对应name。

Bundle identifier对应id,并且必须在id前加上io.dcloud.xxxxx,例如io.dcloud.HBuilder。

Version对应version中的name。

Build对应version中的code(若manifest内该值为空,则需要随便添加一个值,xcode必须与之对应)

关于ios端 离线打包 +xcode11导出ipa文件 各种问题解决bundle identifier不能修改问题:

点击TARGETS,选择build settings,搜索packaging。

 

在Product bundle identifier这一行,双击把值改成你的Bundle identifier。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

再回去general发现值变了,并且也可以修改。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

左侧目录点击Supporting Files-control.xml文件

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

将appid改成你的bundle identifier,且不带io.dcloud,appver改成你的版本号version

ios端 离线打包 +xcode11导出ipa文件 各种问题解决ios端 离线打包 +xcode11导出ipa文件 各种问题解决

例如:

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

这步很关键,不然进入之后会白屏。修改完成后command+s保存

证书的安装

Ios端有两种证书:p12、mobileprovision,都是通过双击证书文件安装,在“钥匙串”中可以查看(在访达中-应用程序-实用工具-钥匙串访问)。

将你的targets-signing里的signing(debug)、signing(release)都改成对应的证书。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

Build settings内搜索signing,将signing部分的code signing identity和development team也改成证书及证书对应的研发团队。这步涉及隐私,在这就不过多描述。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

将project里build settings里的signing也改成对应的证书。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

修改图标和进入画面

 

点击targets-genera-app icons and launch images-app icons source ,点击右方的箭头,

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

 

 

 

 

打开存放图标的文件夹,将图标拖动至对应尺寸的图标上即可。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

若尺寸不对应它会给出提示,需要多少x多少尺寸的图标。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

最后一个1024*1024的是用于app store的,没有也没事,空着。

(在xcode内黄色感叹号并不影响程序运行,红色感叹号则需排查)。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

设置进场画面,点击targets-general-launch screen file,从2020年4月开始,苹果不在允许使用图片类型的格式作为进场画面,必须提供storyboard。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

我们可以选择已有的storyboard,并修改对应的launch screen。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

单击launchscreen文件(打开时间比较久),对它进行修改,使用起来非常简单,在这就不过多描述,有些操作需要英文比较好。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

国际化配置

在该离线工程对国际化进行了配置,导致最后手机上生成的app名字并不是自己设定好的。

方法如下:

 

 

删除这两个文件中的这行语句即可(一个是英文环境,一个是简体中文环境),修改完成后记得command+s保存。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

运行

点击左上方,选择你想运行的测试环境。

第一个为真机测试。

第二个为通用ios设备。

以下的ios simulators为ios模拟器,xcode自带模拟器,不过启动起来稍卡。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

运行之前可以试着执行product-clean build folder操作,对xcode执行一个类似clean的操作,释放缓存。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

点击ios端 离线打包 +xcode11导出ipa文件 各种问题解决运行。

 

问题表:

  1. Xcode Unable to install "XXX"

试着clean build folder 或重启xcode即可解决。

 

  1. Could not launch "xxxxxx"

 

证书问题,具体情况具体分析。

有可能是手机上面的证书问题,通用-设备管理-企业级应用-删除应用,重新真机运行。

 

  1. 信任问题。

 

通用-设备管理-企业级应用-信任,重新启动该程序即可。

配置模块

App在运行的时候可能会出现这种问题:

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

这时候就需要配置模块。Dcloud有给出详细的教学但不是很友好。

https://nativesupport.dcloud.net.cn/AppDocs/usemodule/iOSModuleConfig/common

这里再说明一下。

打开起初解压文件里面拿到Feature-iOS.xls文件,这里以push推送模块为例,找到提醒未添加的push模块所在行。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

找到属于你的模块所需要的具体内容,像我这边的push模块实际上需要的是个推的东西。

可以看到这里有4个地方需要配置成和图上一样。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

 

 

Linker Flags

在targets内点击build settings搜索linking,双击other linker flags的值,在弹出来的框里点击加号输入excel内对应的值,一次只能添加一条,如果有多个则多次添加。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

如图所示

ios端 离线打包 +xcode11导出ipa文件 各种问题解决ios端 离线打包 +xcode11导出ipa文件 各种问题解决

Library(.a)和Framework

配置library和framework需要在工程内创建一个libs的group(黄色文件夹叫group,蓝色的是folder),如图。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决 ios端 离线打包 +xcode11导出ipa文件 各种问题解决

在我们解压出来的resource文件夹内打开libs,所搜对应的library和framework,如我的个推需要的就是这些内容,找到以后全部拷贝到libs文件夹。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

节约时间这里我只拷贝了一个。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

回到xcode中,右键libs,add files to “工程名”。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

选中文件点击add(按住win键点击可以复选,相当于windows的ctrl复选,注意不要重复添加)。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

可以看到已经添加进来了。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

可以看到你的general的frameworks,libraries,and embedded content中已经自动添加了刚刚配置的文件。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

若没有则需要手动添加。

点击frameworks,libraries,and embedded content最底部的加号键

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

在弹出框里添加刚刚配置的文件就好。

注意已经添加的文件不会出现在里面。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

Framework也是同理,在build phases内的link binary with libraries内添加。也是会自动添加,若失败则拉到底部用加号添加。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

Info

在info下找到对应的键,写入对应的值(若不知道值为多少,且h5工程已配置好,可以看h5工程中manifest的配置,与之对应)。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

XCODE文件打包部分

本文针对xcode11的打包,推荐设置为generic ios device,通用ios环境下打包。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

推荐使用release模式,点击product-scheme-edit scheme

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

如图设置。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

点击product-archive

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

需要等待一定的时间

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

 

点击distribute app

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

选择对应的导出选项,我这里选择了组织,点击next。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

在这个界面等待转圈结束。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

若出现,如图所示的提示,很有可能是你的framework中出现了i386,x86_86这个架构(没有可跳过)。具体解决方案可以看

https://blog.csdn.net/bitcser/article/details/105156142

这位的文章。

i386,x86_86架构移除后重新archive

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

配置好相关的证书,no profile required说明不需要相关证书,然后点击next。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

等待。。。。。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

确认信息信息无误后点击export

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

 

选择要导出的位置,点击export即可。

ios端 离线打包 +xcode11导出ipa文件 各种问题解决

最后在导出的文件夹里看到ipa文件,那个就是安装包了,其他的日志文件等可以不需要。