使用Fastlane(或任何其他方法)构建从Expo导出的iPhone应用程序
问题描述:
我有一个iPhone应用程序可以从Expo中导出,因此可以使用我自己的硬件构建。使用Fastlane(或任何其他方法)构建从Expo导出的iPhone应用程序
简单的说我叫exp detach
然后我打电话
cert
sigh
gym
使用fastlane beta
此构建失败,因为它无法登录我的应用程序。该错误是
[15:27:30]: ▸ === BUILD TARGET appname OF PROJECT appname WITH CONFIGURATION Release ===
[15:27:30]: ▸ Check dependencies
[15:27:30]: ▸ No profiles for 'com.getexponent.appname' were found: Xcode couldn't find a provisioning profile matching 'com.getexponent.appname'.
[15:27:30]: ▸ Code signing is required for product type 'Application' in SDK 'iOS 10.3'
显然,这是从什么地方拿起com.getexponent.
。我在app.json
中设置了正确的软件包名称。
我也更新了我的Fastfile
lane :beta do
update_app_identifier(
xcodeproj: '../ios/appname.xcodeproj',
plist_path:'./appname/Supporting/Info.plist',
app_identifier: "com.mycompany.appname"
)
cert
sigh
gym(
scheme: "appname",
workspace: '../ios/appname.xcworkspace'
)
end
但我得到同样的错误消息。
世博会有什么东西可以改变,或者我需要改变什么fastlane
?
答
我在世博资料库here上打开了一个关于这个问题。看起来exp detach
命令不是真正的部署友好的...
我为我的部署使用Bitrise,它包括一个步骤来修改PROJECT_BUNDLE_IDENTIFIER
。您可以执行以下操作:
NEW_BUNDLE_IDENTIFIER="com.mynewbundle.identifier
PBXPROJ_FILE="path/to/project.pbxproj"
sed -i "" "s/\(PRODUCT_BUNDLE_IDENTIFIER = \).*\(;\)/\1${NEW_BUNDLE_IDENTIFIER}\2/" $PBXPROJ_FILE
(基于this Bitrise step)。
答
最后,我已将此添加到我的Fastfile
步
sh "sed -i '' 's/com.getexponent.allotmentlab/com.foam.allotmentlab/g' '../../ios/allotmentlab.xcodeproj/project.pbxproj'"
这是一个糟糕的解决方案,因为你要知道错误的字符串是什么的开始。您还需要知道从Fastfile
到project.pbxproj
的路线。但这是我能想到的最好的解决方案。