我必须放弃最初使用企业配置文件签名的 .ipa 文件。\n由于安全原因,我无法访问该项目的存储库。此外,我必须修改 \n.plist 文件中的内部版本号。
\n\n首先,我使用 fastlane 使用我的分发证书和应用程序商店配置文件对 .ipa 文件进行签名:
\n\nfastlane sigh resign /Users/myUserName/Desktop/FolderContainsMyIPA/MyIPAName.ipa --signing_identity "iPhone Distribution: MyDistributionCertName" -p /Users/myUserName/Desktop/FolderContainsMyIPA/myAppStoreProfile.mobileprovision\nRun Code Online (Sandbox Code Playgroud)\n\n终端输出显示辞职成功。
\n\n然后我压缩并解压缩该文件夹,以修改二进制有效负载内的 info.plist 文件。压缩 .ipa 并将其上传到 iTunes Connect 后,我总是收到以下错误:
\n\n\n\n\n亲爱的开发者,
\n\n我们发现您最近交付的\n \xe2\x80\x9e“我的应用程序名称”存在一个或多个问题。要处理您的交付,必须\n 更正以下问题:
\n\n签名无效 - Info.plist 无效(plist 或签名已被修改)。路径 [Template.app/Template] 处的文件未正确\n 签名。确保您已使用分发\n 证书而不是临时证书或开发证书对应用程序进行签名。\n 验证 Xcode 中的代码签名设置在目标级别\n 是否正确(这会覆盖项目中的任何值) \n 此外,请确保您上传的包是使用 Xcode 中的\n Release 目标而不是 Simulator 目标构建的。如果您确定您的代码签名设置正确,请在 Xcode 中选择“全部清除”,删除 Finder 中的“build”目录,然后重建您的发布目标。如需了解更多信息,请参阅\n https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html
\n\n更正这些问题后,您就可以重新交付\n更正后的二进制文件。
\n\n问候,
\n\n应用商店团队
\n
能否\xe2\x80\x99找出我的方法有什么问题
\n我正在使用 Fastlane 插件automatic_test_emulator_run
automated_test_emulator_run(
AVD_setup_path: "~/<path to your avd setup>/AVD_setup.json",
//some more tasks
)
Run Code Online (Sandbox Code Playgroud)
现在尝试通过命令行运行相同的内容
fastlane automated_test_emulator_run AVD_setup_path:avd.json
Run Code Online (Sandbox Code Playgroud)
但出现错误
[!] 找不到“automated_test_emulator_run”。可用车道:测试
有任何提示使用任何插件并为此传递设置参数吗?
我已经设置了我的应用程序有 2 种风格development和production. 差异在于他们使用的数据库。
我想部署development到 alpha 通道和productionbeta/发布通道。
到目前为止,通过快车道实现这一点没有任何问题,但我有一个问题。在我的口味中,我为每种口味指定了不同的包 ID,com.example.myApp例如com.example.myApp-development
Fastlane 只允许我指定一个,Google Play 控制台也是如此。因此问题是:
这里正确的做法是什么?我是否只对所有风格使用 1 个捆绑包 ID 并将它们部署到各自的测试通道?
或者我最好在我的游戏控制台中创建 2 个应用程序(我现在有点反对)。我没有仔细研究过 android 版本,所以不确定常见的方法是什么。
我在 AppCenter 上运行 CI 机器,需要允许对私有 BitBucket 存储库进行读/写访问,但我不知道如何执行此操作。
ssh-agent我的方法是创建一个 ssh 密钥,并在 CI 构建期间使用ssh-add -K(mac 计算机)将私钥添加到计算机。
我已ssh使用 BitBucket 在本地计算机 (mac) 上创建了一个密钥ssh-keygen并将其上传.pub到 BitBucket。然后,当我的 CI 运行时,我尝试获取私钥并将其添加到,ssh-agent但系统提示我输入密码,并且无法弄清楚如何在非交互式 shell 模式下注入它。
这是在 CI 中授予对 BitBucket 访问权限的正确方法吗?如果是这样,如何添加 ssh 密钥而不提示输入密码?
Fastlane Matchssh continuous-integration bitbucket fastlane visual-studio-app-center
我正在使用 Fastlane match和gym来构建我的应用程序并将其从 CI (Bitrise) 分发到 Fabric。我的 Xcode 设置设置为手动,并使用 AdHoc 配置文件进行发布配置,如Fastlane 文档中所述
\n\n现在我想从 CI 分发到 Appstore,但它失败了,因为 XcodeRelease配置设置为使用 AdHoc 配置文件,并且 Match 安装了 AppStore 配置文件。
+---------------------------------------------------------------+-----------------------------------------------------------------------------+\n| Summary for gym 2.112.0 |\n+---------------------------------------------------------------+-----------------------------------------------------------------------------+\n| scheme | AeroNavMap |\n| export_method | app-store |\n| export_xcargs | -allowProvisioningUpdates |\n| export_options.provisioningProfiles.net.tequilaapps.airnavmap | match AppStore net.tequilaapps.airnavmap |\n| workspace | ./PEMap.xcworkspace |\n| destination | generic/platform=iOS |\n| output_name | AeroNavMap |\n| build_path | /Users/vagrant/Library/Developer/Xcode/Archives/2019-01-06 |\n| clean | false |\n| output_directory | . |\n| silent …Run Code Online (Sandbox Code Playgroud) 我试图在我的 fastline 中注释某些行,但我不确定如何在 fastlane 文件中编写注释。我也不想删除这些行。
我是这样认为的:
build(variant: 'Release')
appcenter_upload(
api_token: ENV['APPCENTER_API_TOKEN'],
owner_name: "Ralali.com",
app_name: "Ralali-Android",
apk: "android/app/build/outputs/apk/release/app-release.apk",
destinations: "Production",
# destination_type: "group", IS THIS LINE COMMENTED? (WON'T EXECUTED?)
# notify_testers: true AND ALSO THIS ONE
)
Run Code Online (Sandbox Code Playgroud)
我在生产中使用 Circleci 运行 fastlane,但我不想在生产中尝试,因为我害怕。
升级到 Xcode 12.5(从 App Store 升级)后,一些 CLI 工具(例如xcodebuild和 )codesign_allocate立即失败,并显示:
Executable requires at least macOS 11.0, but is being run on macOS 10.16, and so is exiting.
即使这些都失败了, xcode-select 仍然可以工作,并且位置已设置 - 运行xcode-select -poutputs /Applications/Xcode.app/Contents/Developer。一切似乎都已安装,这xcode-select --install表明。我尝试从源安装 CLI ,并将 bin 目录放入PATH似乎可以正常工作,但这不包括xcodebuild. 但是,如果我不手动安装这些 cli 工具,我仍然会收到安装 cli 工具的提示,并且在“安装”它们后,我会继续收到提示。
Xcode IDE 中的一切工作正常,并且我已多次尝试重新安装 Xcode。我使用的是最新版本的 Big Sur(版本 11.3),而这台计算机甚至从未有过低于该版本的 macOS 版本。在这次升级之前一切都工作正常。
.env、.env.default和加载变量.env.{environment},其中由命令中的environment标志提供。--envfastlaneFastfile环境文件。.env.{environment}时,我想保留加载文件的行为。{environment}--env我遇到一个问题,为什么要尝试使用 Jenkins 管道和 fastlane 为 iOS 部分构建 KMM 项目。
Kotlin 版本:1.5.31
XCode 版本:13.1
Fastlane 版本:2.198.1
Ruby 版本:2.6.3p62
当在本地执行这些步骤时,它也会中断。fastlane 抛出的错误是import shared: no such module 'shared'
我发现如果您运行pod install && fastlane xcode_build构建刹车,但如果您第二次重复它,它就会成功并在 XCode 的 DerivedData 文件夹中创建 project.app 文件。
Jenkinsfile 在另一个非 KMM 项目的 iOS 项目上正常工作。
这是詹金斯文件
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '5'))
}
environment{
FIREBASE_APP = 'some-app'
FIREBASE_TOKEN = 'some-token'
YOUR_CRED = credentials('KeychainPassword')
PROJECT_NAME = 'project'
}
agent any
stages {
stage("Build and Deploy") {
parallel {
stage("iOS") { …Run Code Online (Sandbox Code Playgroud) ios kotlin fastlane jenkins-pipeline kotlin-multiplatform-mobile
我有一个 GitHub 操作,用于fastlane在 CI 管道中构建版本并将其部署到 TestFlight。我使用 App Store Connect API 密钥进行非交互式身份验证。
苹果的文档明确指出:
重要的
确保您的 API 密钥安全且私密。您永远不应该共享密钥、将密钥存储在代码存储库中或在客户端代码中包含密钥。
但我看到的每个示例都只是将文件作为纯文本文件签入源代码管理(通过参数)传递.p8给命令:app_store_connect_api_key()key_filepath
lane :release do
app_store_connect_api_key(
key_id: "D383SF739",
issuer_id: "6053b7fe-68a8-4acb-89be-165aa6465141",
key_filepath: "./AuthKey_D383SF739.p8"
)
pilot
end
Run Code Online (Sandbox Code Playgroud)
或作为明文密钥本身(通过key参数):
lane :release do
app_store_connect_api_key(
key_id: "D383SF739",
issuer_id: "6053b7fe-68a8-4acb-89be-165aa6465141",
"key": "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHknlhdlYdLu\n-----END PRIVATE KEY-----"
)
pilot
end
Run Code Online (Sandbox Code Playgroud)
有没有更安全的方法来存储它并仍然在 CI 管道中使用它?
fastlane ×10
ios ×6
android ×3
xcode ×3
bitbucket ×1
deployment ×1
fastlane-gym ×1
kotlin ×1
kotlin-multiplatform-mobile ×1
ruby ×1
ssh ×1
testing ×1