使用 xcbuild / xcrun 和 xcconfig 为 cordova ios 应用程序添加 64 位支持

Posted

技术标签:

【中文标题】使用 xcbuild / xcrun 和 xcconfig 为 cordova ios 应用程序添加 64 位支持【英文标题】:Adding 64bit support to cordova ios app using xcbuild / xcrun and xcconfig 【发布时间】:2014-12-02 13:08:38 【问题描述】:

我正在开发一个 cordova 应用程序,并且我设法使用脚本从命令行创建了 ipa。

echo "" > $PROJECT_DIR/cordova/build.xcconfig
echo "CODE_SIGN_IDENTITY = iPhone Distribution: XXXXXXX" >> $PROJECT_DIR/cordova/build.xcconfig
echo "CODE_SIGN_RESOURCE_RULES_PATH = \$(SDKROOT)/ResourceRules.plist" >> $PROJECT_DIR/cordova/build.xcconfig
echo "IPHONEOS_DEPLOYMENT_TARGET = 7.0" >> $PROJECT_DIR/cordova/build.xcconfig

cordova build ios --device

xcrun \
  -sdk iphoneos PackageApplication \
  -v "$PRODUCT_DIR/$TARGET.app" \
  -o "$OUTDIR/$TARGET.ipa" \
  --embed "$PROVISONING_PROFILE" \
  --sign "$IDENTITY"

这很好用,但是当我上传到 Apple TestFlight 时收到此警告。

你们对此有什么暗示吗?也许我可以在.xcconfig 中添加一行,这看起来很方便!

【问题讨论】:

【参考方案1】:

我想出了什么问题!缺少 --release 标志。现在我可以在不打开 XCode 的情况下构建!

echo "\n > patching cordova xconfig for distribution\n"
echo "" > $PROJECT_DIR/cordova/build.xcconfig
echo "CODE_SIGN_IDENTITY = $IDENTITY" >> $PROJECT_DIR/cordova/build.xcconfig
echo "CODE_SIGN_RESOURCE_RULES_PATH = \$(SDKROOT)/ResourceRules.plist" >> $PROJECT_DIR/cordova/build.xcconfig
echo "IPHONEOS_DEPLOYMENT_TARGET = 7.0" >> $PROJECT_DIR/cordova/build.xcconfig

echo "\n > cleanup $OUTDIR/$TARGET.ipa\n"
rm -vf $OUTDIR/$TARGET.ipa

echo "\n > build project\n"
cordova build ios --release --device

echo "\n > creating ipa at $OUTDIR/$TARGET.ipa\n"
cd $BASE_DIR
xcrun \
  -sdk iphoneos PackageApplication \
  -v "$PRODUCT_DIR/$TARGET.app" \
  -o "$OUTDIR/$TARGET.ipa" \
  --embed "$PROVISONING_PROFILE" \
  --sign "$IDENTITY"

【讨论】:

我相信这也是我的问题!感谢发帖! 实际上,iTunes 仍然报告不支持 64 位,即使我在 Application Loader 中不再看到该错误。 iTunes 或 iTunes 连接?截图? 来自 iTunes Connect 的电子邮件:“缺少 64 位支持 - 从 2015 年 2 月 1 日开始,提交到 App Store 的新 iOS 应用程序必须包含 64 位支持并使用 iOS 8 SDK 构建。开始2015 年 6 月 1 日的应用程序更新也需要遵循相同的要求。要在您的项目中启用 64 位,我们建议使用“标准架构”的默认 Xcode 构建设置来构建具有 32 位和 64 位的单个二进制文件位码。” 是的,当我确保在我进行构建的任何地方都存在“--release”时,这似乎已经奏效了。谢谢!

以上是关于使用 xcbuild / xcrun 和 xcconfig 为 cordova ios 应用程序添加 64 位支持的主要内容,如果未能解决你的问题,请参考以下文章

xcodebuild:在使用条件集错误覆盖参数时实现对宏的 XCBuild 支持

XCBuild 在调用 fastlane 健身房时显示错误

Xcrun 未嵌入传递的配置文件

xcrun 错误:无法从

xcrun:错误:活动开发者路径(“/Applications/Xcode.app/Contents/Developer”)不存在

xcrun:错误:活动开发者路径(“/Applications/Xcode.app/Contents/Developer”)不存在