如何使用'cordova build ios --release'部署(创建.ipa)iphone应用程序?
Posted
技术标签:
【中文标题】如何使用\'cordova build ios --release\'部署(创建.ipa)iphone应用程序?【英文标题】:How can I deploy (create .ipa) iphone app using 'cordova build ios --release'?如何使用'cordova build ios --release'部署(创建.ipa)iphone应用程序? 【发布时间】:2014-07-26 11:57:09 【问题描述】:我用cordova
使用documentation 创建了一个“helloworld”ios 应用程序。当我运行cordova emulate ios
时,该应用程序成功运行。我不能做的是在运行cordova build --release
时进行部署。它不会在那里创建任何 .ipa
文件。我找到的只是PROJECT_ROOT/platforms/ios/build
目录中的Helloworld.build
文件。我在这里遗漏了什么吗?
【问题讨论】:
【参考方案1】:其他一切都对我不起作用,但这对我有用
cordova build ios
然后
cordova run ios --device
.ipa 文件位于
myPrject/platforms/ios/build/device/myProject.ipa
build.json(设置自动签名)
"ios":
"debug":
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "FG35JLLMXX4A",
"packageType": "development",
"automaticProvisioning": true,
"buildFlag": [
"EMBEDDED_CONTENT_CONTAINS_SWIFT = YES",
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO",
"LD_RUNPATH_SEARCH_PATHS = \"@executable_path/Frameworks\""
]
,
"release":
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "FG35JLLMXX4A",
"packageType": "app-store",
"automaticProvisioning": true,
"buildFlag": [
"EMBEDDED_CONTENT_CONTAINS_SWIFT = YES",
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO",
"LD_RUNPATH_SEARCH_PATHS = \"@executable_path/Frameworks\""
]
参考docs
瞧!
【讨论】:
【参考方案2】:我发现这个命令对我有用:
cordova build ios --device
cd platforms/ios/build/device
/usr/bin/xcrun -sdk iphoneos PackageApplication "$(pwd)/$PROJECT_NAME.app" -o "$(pwd)/$PROJECT_NAME.ipa"
来源:http://www.splinter.com.au/xcode-4-command-line-builds-of-iphone-apps/
我确实运行了@MD。首先是 Mohiuddin Ahmed 的 Ruby 脚本,它会改变我的 xcodeproj 文件。我不确定这是否有必要,但我不这么认为。
XCode 8 更新:正如评论者所指出的,PackageApplication
已从 XCode 8 中删除。要更新流程,请参阅问题:What's the replacement for Xcode's PackageApplication?
按照 cmets 的建议,通过添加 cordova build
命令进行编辑以阐明流程。
【讨论】:
正确答案。澄清一下:运行cordova build ios --device
以在platforms/ios/build/device
中生成应用程序
是的,使用cordova build ios --device
效果很好
由于某种原因,xcrun
行对我来说不是必需的。我使用的是 Cordova 6,它是否集成到 cordova build ios --device
中?当我运行它时,它似乎使用我的 XCode 设置生成了一个正确签名的 ipa 文件。
似乎 PackageApplication 已从 xcode8 中删除,对我不起作用。【参考方案3】:
如果您使用的是 cordova ios 3.9.0 或更新版本,您可以使用此命令直接从 CLI 创建.ipa
,无需额外命令:
cordova build ios --device --release
您需要一个位于项目根目录的build.json
文件
"ios":
"debug":
"codeSignIdentity": "iPhone Developer",
"provisioningProfile": "your-dev-provisioning-profile-UUID-here"
,
"release":
"codeSignIdentity": "iPhone Distribution",
"provisioningProfile": "your-distribution-provisioning-profile-UUID-here"
要获取 UUID,我在文本编辑器上打开 .mobileprovision
文件并搜索“UUID”,但不确定是否有更简单的方法找到它。
如果使用 Xcode 8,build.json
需要 developmentTeam
字段和 packageType
字段,但不再需要配置文件,此外,codeSignIdentity
应该是 iPhone Developer
用于调试和发布:
"ios":
"debug":
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "FG35JLLMXX4A",
"packageType": "development"
,
"release":
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "FG35JLLMXX4A",
"packageType": "app-store"
http://cordova.apache.org/docs/en/6.x/guide/platforms/ios/index.html#using-buildjson
【讨论】:
仅供参考,这对我不起作用。我的意思是它创建了一个 .app 而不是 .ipa 文件。原来我的iOS平台是3.8,现在已经过时了。一个容易犯的错误,所以要小心。 已更新,此功能已添加到 cordova ios 3.9.0 这是更好的选择.. 因为它需要一次设置..!! ! NB/ UUID可以在itunes中通过点击序列号几次或者如果你安装了ios-deploy在终端执行$ ios-deploy -c来找到 我谈论的是配置文件 (.mobileprovision) UUID,而不是设备 UUID【参考方案4】:您可以尝试http://fir.im 的新工具。
他们有一个用 ruby 编写的 fir cli 工具。您可以使用以下命令安装它:
sudo gem install fir-cli --no-ri --no-rdoc
注册一个帐户(像旧的 testflight 一样免费)并从您的个人资料中获取一个令牌。从命令提示符运行:
fir login
提供您的令牌。
将 CD 放入 .xcodeproj 所在的目录。
fir build_ipa .
一段时间后(如果构建成功),您将在 ./build_ipa 文件夹中找到您的 ipa。
【讨论】:
注册时不发送验证码【参考方案5】:我终于找到了一种方法,通过使用 xcodeproj、xcode 和这个 ruby 脚本来自动执行此操作:
require 'xcodeproj'
xcproj = Xcodeproj::Project.open("HelloWorld.xcodeproj")
xcproj.recreate_user_schemes
xcproj.save
然后在PROJECT_ROOT/platforms/ios/
目录中,这个命令帮助我生成了我的*.ipa
:
xcodebuild -project HelloWorld.xcodeproj -exportArchive -exportFormat ipa -archivePath $(pwd)/HelloWorld.xcarchive -exportPath $(pwd)/HelloWorld.ipa CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -alltargets -configuration Release
认为我们可以稍后签署我们的 .ipa :)
【讨论】:
以上是关于如何使用'cordova build ios --release'部署(创建.ipa)iphone应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
ionic cordova build ios 使用 xcode swift 3 框架安装自定义插件失败
存档成功,但导出失败:cordova build ios --release
带有 Phonegap Build 的 Cordova 插件白名单在 iOS 上不起作用
运行 ionic cordova build ios 时找不到包含的文件