Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

打包应用到iOS ipa #18

Closed
PriceHu opened this issue Apr 3, 2021 · 12 comments
Closed

打包应用到iOS ipa #18

PriceHu opened this issue Apr 3, 2021 · 12 comments

Comments

@PriceHu
Copy link

PriceHu commented Apr 3, 2021

Reference: #16

我最近在做Flutter的App,React Native具体编译方式不是很了解,但是Xcode有一个绕过打包的方法:

  • 用Xcode build应用到Analyze,Scheme里选择release,会生成对应的.app(Flutter里一般是Runner.app)
  • 在项目目录里找到对应的.app,新建一个叫Payload的文件夹然后拖进去
  • 把Payload压缩到zip并重命名为.ipa

参考:web

这个方法对我的Flutter应用有效,原理应该是所有iOS app通用的,可以试一试。有了ipa以后不管是AltStore还是Cydia都很方便了

@czy0729
Copy link
Owner

czy0729 commented Apr 4, 2021

一言难尽,我其实整个iOS端都不是原生项目,都是经过一个叫Expo的二次封装框架开发的
这个Expo自己包含了云打包,所以之前我都是输入apple的付费中开发者账号密码就可以一键云生成ipa

然后apk也是可以云的,但是他生成的云apk带了热更新,跟他expo的渠道有绑定,在国内会很慢,会卡启动界面,设置了不绑定还是没办法解决问题,而且生成的apk大小随着expo的版本更新越来越大,简单点说他生成的50M,我自己本地打包的15M

迫于无奈,他有一个eject功能,就是把expo的项目脱离掉,变成原生react-native的,但是eject后需要把expo提供的代码全部移除,他底层帮你做了极多的事情,比如启动页,你需要找到本来的写法去改掉

eject这个过程,莫名其妙的新问题把我都搞得心力交瘁,当时花了我整整一个月才把android脱离了。所以假如现在要本地用xcode编译,我就等于不得不把iOS端也eject掉,所以你懂的

当然最快还是我自己去把100美元续费了,顺便换个马甲重新审一下说不定就过了。目前expo其实还是能生成ipa的,貌似是给本地模拟器用的?我也试过Payload这个方式,改了后缀后,显示是ipa损坏,所以我也不知道行不行。

@PriceHu
Copy link
Author

PriceHu commented Apr 4, 2021

试了下编译,然后环境搭不起来,依赖有冲突(
我看了一下官方的文档,Expo好像有提供本地编译的方式,需要装好Xcode然后用expo的cli编译,传递本地的证书和描述文件。免费开发账户的证书和描述文件也有办法获取到。
ipa损坏的问题,具体是在哪边呢?给模拟器用的应该没法装到手机上,架构有差异,M1的我不是很清楚,手边没集齐机器。如果是编译后的.app打包的,损坏可能是签名问题?如果是正常编译到release的包应该可以用,如果有文件我这里也可以试一下。

@czy0729
Copy link
Owner

czy0729 commented Apr 5, 2021

你别试,这环境想跑起来真的复杂得一匹.
window我觉得呢基本没戏
mac应该还是很容易的,但是本地打包现在肯定是不能的,我需要改大量代码
再次还有很多比如秘钥什么的我都没上传的,需要手动修好才能跑起来
等我上班了摸鱼试试云打包,尽量打一个ipa出来再丢给你试试

@DevCoz
Copy link

DevCoz commented Nov 19, 2021

大佬,提供ipa包,有消息吗?想自己用altstore签名安装,谢谢。

@czy0729
Copy link
Owner

czy0729 commented Nov 19, 2021

大佬,提供ipa包,有消息吗?想自己用altstore签名安装,谢谢。

抱歉,没有续费中的苹果账号,打包是不可能的

@DevCoz
Copy link

DevCoz commented Nov 19, 2021

大佬,提供ipa包,有消息吗?想自己用altstore签名安装,谢谢。

抱歉,没有续费中的苹果账号,打包是不可能的

好的,谢谢

@czy0729
Copy link
Owner

czy0729 commented Jan 13, 2022

@PriceHu 今天我试着研究了一下altstore, 花了好多个小时, 尝试打了个simulator的包, 装成ipa不行, 要是能上testflight那种release包才可以.

没一点办法, expo他可能用了苹果的某些功能, 一定要有付费账号, 否则就是不能打包. 其实RN本身可以直接用xcode像你当初说的那样打包ipa, 但是用了expo, 想eject出来太难了, 难得我都不敢想.

不知道是否有付费中的账号, 虽然也有点不甘心但至少我是不打算开的, 想有ipa真就差个账号, 其余全是傻瓜操作, 若你有账号, 当前这个项目的代码我早已经调整到可以让你顺利运行ios环境.

@jamninetyfive
Copy link

hi 能做一下脱离expo不·~

@czy0729
Copy link
Owner

czy0729 commented Feb 12, 2022

hi 能做一下脱离expo不·~

安卓端就是脱离expo的,iOS不是,iOS也没必要脱,太便利。脱安卓端我都费了不少力气,iOS端真要脱现在的代码量基本脱不动。

@li-guohao
Copy link

请问expo里如何更新到最新版本?

@czy0729
Copy link
Owner

czy0729 commented Apr 7, 2022

@li-guohao 目前最新代码还未来得及适配expo,你可以退到tag 5.8.4之后,只能一个版本一个版本往上升,还得把所有他不兼容的地方改回去,很麻烦的,当然没升级0.1的rn版本复杂

@czy0729
Copy link
Owner

czy0729 commented Jun 10, 2022

@czy0729 czy0729 closed this as completed Jun 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants