PPAutoPackageScript icon indicating copy to clipboard operation
PPAutoPackageScript copied to clipboard

从 archive 导出 ipa 包时失败

Open qiubaiying opened this issue 8 years ago • 33 comments

十分感谢你提供的脚本!

我的Xcode版本是8.3和8.3.1 系统版本10.12.1

我从 archive 导出 ipa 包时发生了失败

2017-04-25 14:43:08.553 xcodebuild[31914:2514903] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/gq/mq8734y16zg2x8g_d10bbzvc0000gn/T/HLStore_2017-04-25_14-43-08.552.xcdistributionlogs'.
1.2.840.113635.100.1.61
2017-04-25 14:43:11.630 xcodebuild[31914:2514903] [MT] IDEDistribution: Step failed: <IDEDistributionThinningStep: 0x7fc6226e2e60>: Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.}
error: exportArchive: No applicable devices found.

Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.}

** EXPORT FAILED **

google 了解决方法是

先运行下面的脚本

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
rvm use system

再导出 ipa包

不过在 *.sh 中rvm use system时,会出现下面的错误

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for an example.

google了很久,这个问题到现在还是很好的解决方法。 只能手动在终端中输入脚本进行打包~ 希望能交流解决这个问题

qiubaiying avatar Apr 25 '17 07:04 qiubaiying

你的电脑是安装了两个Xcode? 8.3和8.3.1? 导出ipa报错的原因: exportArchive: No applicable devices found 是没有找到合适的设备, 你卸载掉其中一个Xcode看看 @qiubaiying

jkpang avatar Apr 26 '17 01:04 jkpang

应该不是这个问题,因为我只装xcode8.3的时候也是这样的。

发自网易邮箱大师 在2017年04月26日 09:32,jkpang 写道:

你的电脑是安装了两个Xcode? 8.3和8.3.1? 导出ipa报错的原因: exportArchive: No applicable devices found 是没有找到合适的设备, 你卸载掉其中一个Xcode看看 @qiubaiying

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

qiubaiying avatar Apr 26 '17 01:04 qiubaiying

我这边使用完全没问题,你换一台可以打包的Mac看看能否成功, 我也去找找你出现错误的原因 @qiubaiying

jkpang avatar Apr 26 '17 01:04 jkpang

错误信息再po多一点, mv: rename /Users/jarvi/Desktop/hysc-IPA/hysc.ipa to /Users/jarvi/Desktop/hysc-IPA/hysc-v1.0.2.ipa: No such file or directory上一句是export success 还是export failure ? 桌面的hysc-IPA文件夹里面有ipa文件吗 @lll1024

jkpang avatar Apr 26 '17 07:04 jkpang

看一下这篇博客,和你遇到的问题是一样,进去后拉到文章最后: http://www.jianshu.com/p/722adedaa3bf @qiubaiying

jkpang avatar Apr 26 '17 10:04 jkpang

我在我的macBook上执行也是出现同样的错误。

能请问你的构建环境吗?

我的 xcodebuild 版本是

$ xcodebuild -version
Xcode 8.3.1
Build version 8E1000a

简书上的这篇文章也是用rvm ues system,但这样做就需要手动在终端输入,无法一次性打包完成。

qiubaiying avatar Apr 26 '17 15:04 qiubaiying

我的 xcodebuild版本是:

Xcode 8.3.2
Build version 8E2002

1.你自己的MacBook有安装项目对应的签名证书吗? 2.你的开发者账号是哪一种类型? 3.在选择打包方式的时候选择的是以下哪种方式?

请选择打包方式(输入序号,按回车即可) 
 1. AdHoc 
 2. AppStore  
 3. Enterprise 

如果打包的类型和你的开发者账号类型不匹配,也有可能会失败. @qiubaiying

jkpang avatar Apr 27 '17 01:04 jkpang

打包的类型和你的开发者账号类型时一致的 我在运行脚本前输入rvm use system,就可以一次性打包成功了。

我在猜想是不是ruby版本的问题

macOS自带的ruby版本是2.0.0

$ rvm use system
$ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]

我用rvm装的ruby是2.4.0

$ rvm use default
$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]

请问你使用的ruby版本是多少呢?

qiubaiying avatar Apr 27 '17 02:04 qiubaiying

恩恩,很有可能是和ruby的版本有关系,我前几天升级了最新的ruby 现在的版本和你一样 ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16] 终于解决了啊,厉害👍 @qiubaiying

jkpang avatar Apr 27 '17 03:04 jkpang

惭愧惭愧,在这卡了很久了~ 刚刚在进行了测试,在ruby 2.4.0以下的版本都是可以的。

$ rvm list known

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.6]
[ruby-]2.3[.3]
[ruby-]2.4[.0]

现在已经切换到ruby2.3.3

$ rvm install ruby-2.3.3
$ rvm --default use 2.3.3

我是在重装Cocoapods的时候升级的ruby2.4.0,看来不能随便升级呀~

我建议你可以在脚本中加入将 ipa包 上传到 fir脚本命令的选项,这样就可以打包上传一次性解决了~

最后,再次感谢你抽出时间来帮我解决问题。

qiubaiying avatar Apr 27 '17 03:04 qiubaiying

恩恩,,感觉每次Xcode升级都会带来一系列的坑😂 . ipa包上传fir.im和蒲公英,网上还是有很多资料的,我现在想把ipa直接传到公司自己的服务器,等搞好了我在弄上去

jkpang avatar Apr 27 '17 04:04 jkpang

😂同感同感~

qiubaiying avatar Apr 27 '17 04:04 qiubaiying

必须点个赞呢👍,可是这样打出来的包比原来xcode打的包足足大了7M,请问这是怎么回事

muyang00 avatar Apr 28 '17 06:04 muyang00

不会吧,,我的项目使用Xcode和脚本打出来的包都是同样大小 @muyang00

jkpang avatar Apr 28 '17 08:04 jkpang

在使用这个脚本过程中还发现个问题,目前我的ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16] 可是在公司账号下选择那个打包方式1,3,4情况下都会失败,都会提示说ruby版本过低;使用企业账号打包时1,2,3,4种情况都会失败。也是说ruby版本过低。 只有2是好的,可以打出IPA包 image33

muyang00 avatar May 02 '17 09:05 muyang00

你升级最新版的ruby再试试 @muyang00

jkpang avatar May 02 '17 09:05 jkpang

image22 选择的是打包方式1 ,内测版

muyang00 avatar May 02 '17 09:05 muyang00

这是系统中存在多个ruby版本的原因(1. 使用rvm安装的最新ruby 2. 系统自带的system版本ruby),导出ipa时需要使用system版本的ruby。需要在使用xcodebuild -exportArchive前,执行 rvm use system 这个命令就行,但是直接在脚本中执行这命令又会报错。我的解决办法如下:

  1. 新建文件 xcodebuild_safe.sh ,给它可执行文件权限。包含内容如下: #!/bin/bash --login [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" rvm use system xcodebuild "$@"

  2. 在打包脚本中,如下执行导出ipa命令即可: ./xcodebuild_safe.sh -exportArchive -archivePath "${archive_path}" -exportPath "${export_dir}" -exportOptionsPlist "${plist_file}" || Failed "export fail"

文件同一目录下 image

@qiubaiying @jkpang

zhoujihang avatar May 02 '17 12:05 zhoujihang

受教了👍 @zhoujihang

jkpang avatar May 02 '17 13:05 jkpang

@zhoujihang 你好,你说导出ipa时需要使用system版本的ruby,可是在使用PPAutoPackageScript.sh 过程中当我选择2的打包方式也能打出包,那这又是为什么?

muyang00 avatar May 03 '17 03:05 muyang00

这个。。。如果你使用1、2、3、4方式都是在同一台电脑上,但只有2可用的话,那还真不知道怎么解释诶。说不定appstore版本打包时有啥特别待遇,哈哈哈。

zhoujihang avatar May 03 '17 06:05 zhoujihang

😂😂

muyang00 avatar May 03 '17 07:05 muyang00

选择打包后,出现问题是No applicable devices found,同时我的ruby版本是最新的,结果还是打包出错。查询后好像是是必须使用系统的ruby进行打包。执行以下指令就可以切换到系统ruby就看可以了。

#!/bin/bash --login [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" rvm use system xcodebuild "$@"

chenxudongok avatar May 12 '17 01:05 chenxudongok

您好!请教一下,我的ruby版本是最新2.4.0的,也使用了rvm use system,但是导出ipa包是依然提示 usage: mv [-f | -i | -n] [-v] source target mv [-f | -i | -n] [-v] source ... directory 导出 nxetoh-vFile Doesn't Exist, Will Create: nxetoh/nxetoh-Info.plist.ipa 包失败 😢 😢 😢
这是为什么?

748781314 avatar May 16 '17 09:05 748781314

@748781314 可以使用系统自带的Ruby版本进行打包

rvm use system

然后再编译就可以了

qiubaiying avatar Jun 15 '17 02:06 qiubaiying

可以通过shell脚本调用 rvm use system 和Python脚本就可以实现一次性打包了。

LYPDoit avatar Aug 08 '17 06:08 LYPDoit

mac系统是10.13.2 Xcode8.3 ruby是2.3.3尝试了各种办法还是不行依然报错Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.} 还有什么解决方案吗

LUSHULIN avatar Jan 23 '18 09:01 LUSHULIN

XCode升级Version 9.3,打包失败,升级前是没问题的

JohnRayWong avatar Apr 28 '18 10:04 JohnRayWong

image

JohnRayWong avatar Apr 28 '18 10:04 JohnRayWong

Xcode10导出ipa 包失败,ruby2.2.2,请问怎么解决

congder avatar Dec 21 '18 07:12 congder