菜鸟教程小白 发表于 2022-12-12 21:26:47

ios - 代码签名问题 : resource-rules (deprecated in Mac OS X >= 10. 10)


                                            <p><p>首先,为了简化“可能重复”的假设,我在这里遇到了这两个帖子:
<a href="https://stackoverflow.com/questions/26464577/jenkins-vs-xcode-plugin-codesign-troubles" rel="noreferrer noopener nofollow">Jenkins vs. Xcode plugin - codesign troubles</a> </p>

<p> <a href="https://stackoverflow.com/questions/26497863/xcode-6-1-error-while-building-ipa/26499526#26499526" rel="noreferrer noopener nofollow">Xcode 6.1 error while building IPA</a> </p>

<p>随后 <a href="https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG206" rel="noreferrer noopener nofollow">this apple tech note</a> </p>

<p>这些解决方案没有解决任何问题。我最近将 Mac 机器从更旧的 OS X 升级到 El Capitan 以及最新最好的 XCode 版本(7.something 或其他),并且正在运行 Jenkins。升级前正在构建的项目现在无法构建。</p>

<p>第一个错误来 self 的标题(来自升级后的第一个 jenkins 构建):</p>

<p><code>错误:/usr/bin/codesign --force --preserve-metadata=identifier,entitlements,resource-rules --sign Stuff_I_Dont_think_I_canShow/TheProject.app 失败并出现错误 1。输出:警告:使用 - -preserve-metadata 带有选项“resource-rules”(在 Mac OS X >= 10.10 中已弃用)!</code>。 </p>

<p>尝试了两个帖子中的解决方案,推送了更改,但再次失败:</p>

<p><code>代码签名错误:未找到代码签名身份:未找到与团队 ID“SOMEID123”匹配的有效签名身份(即证书和私钥对)</code>。 <strong><em>(同样,我不确定我是否可以显示团队 ID,这些东西对我来说是新的,我不确定什么是敏感信息,什么不是敏感信息)</em></strong></p >

<p>在这里进行了更多挖掘并遇到了这个答案:<a href="https://stackoverflow.com/questions/26459911/resource-rules-has-been-deprecated-in-mac-os-x-10-10#answer-32653351" rel="noreferrer noopener nofollow">--resource-rules has been deprecated in mac os x &gt;= 10.10</a> .其中引用:</p>

<blockquote>
<p>Since Xcode 7, the Code Signing Resource Rules Path build setting must
be left empty</p>
</blockquote>

<p>好的。好吧,我有 Xcode 7。所以我删除了之前引用的解决方案的更改,现在我仍然收到相同的错误:<code>Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) matching已找到团队 ID“SOMEID123”。</code></p>

<p>这里发生了什么?我已经浪费了很多时间来解决这个问题而没有结果。我是否必须以某种方式明确删除 <code>resource-rules</code> 在某个不起眼的位置的使用?任何知识共享将不胜感激。</p>

<p>这是脚本的打包和签名部分(经过一定程度的审查):</p>

<pre><code># Build &amp; package app
cd $PROJECT_DIR/src/xcode
xcodebuild -target MyApp -configuration Release clean build SYMROOT=$BUILD_DIR_BASE
xcrun -sdk iphoneos PackageApplication -v $BUILD_DIR/Mobile_MyApp.app -o $BUILD_DIR/Mobile_MyApp.ipa --sign &#34;iPhone Distribution: Company&#34; --embed &#34;$CERT_DIR/hf83uw90-i987-21j0-5t6y-f897e2384957.mobileprovision&#34;
</code></pre>

<p>再补充一点信息,这是一个git项目,在打包之前,会检索项目,然后访问repos。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>所以您的配置文件 (<code>PROVISIONFILE</code>) 是 <code>$CERT_DIR/hf83uw90-i987-21j0-5t6y-f897e2384957.mobileprovision</code> 和您的分配名称 (<code>DISTRIBUTION_NAME</code>) 是 <code>iPhone 发行版:公司</code>。</p>

<p>我会将其添加到脚本中:</p>

<pre><code>PROFILE_UUID=`grep &#34;&lt;key&gt;UUID&lt;/key&gt;&#34; $PROVISIONFILE -A 1 --binary-files=text | sed -E -e &#34;/&lt;key&gt;/ d&#34; -e &#34;s/(^.*&lt;string&gt;)//&#34; -e &#34;s/(&lt;.*)//&#34;`
</code></pre>

<p>然后在 <code>xcodebuild</code> 行</p>

<pre><code>PROVISIONING_PROFILE=$PROFILE_UUID CODE_SIGN_IDENTITY=&#34;$DISTRIBUTION_NAME&#34;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 代码签名问题 : resource-rules (deprecated in Mac OS X &gt;= 10. 10),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/38489040/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/38489040/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 代码签名问题 : resource-rules (deprecated in Mac OS X &gt;= 10. 10)